php Laravel公用文件夹返回404(.htaccess)

cwtwac6a  于 10个月前  发布在  PHP
关注(0)|答案(1)|浏览(81)

我有一个.htaccess文件使用此文件,我通过子域(HTTP_HOST)检测语言代码。
这里没有问题,但是,当我将传入的请求重定向到公用文件夹下的文件时,我得到一个404错误,并且语言变得不可操作。

SetEnv DEFAULT_LANG en

<IfModule mod_rewrite.c>
    Options +FollowSymLinks -Indexes

    RewriteEngine On

    RewriteCond %{HTTP:Authorization} .
    RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]

    # Set the language parameter by HTTP_HOST
    RewriteCond %{HTTP_HOST} ^([a-z]{2})\.([a-z0-9-]+\.[a-z]+)$ [NC]
    RewriteRule (.*) - [QSA,E=LANGUAGE:%1]

    # Set the language parameter default
    RewriteCond %{ENV:LANGUAGE} ^$
    RewriteRule (.*) - [QSA,E=LANGUAGE:en]

    # Set the language query string if absent
    RewriteCond %{QUERY_STRING} !language=
    RewriteRule ^(.*)$ $1?language=%{ENV:LANGUAGE} [QSA]

    # Finally rewrite the request URI to the /public folder
    RewriteCond %{REQUEST_URI} !^/public
    RewriteRule ^(.*)$ /public/$1 [L]

</IfModule>

字符串

6yoyoihd

6yoyoihd1#

尝试使用以下方法:

SetEnv DEFAULT_LANG en

<IfModule mod_rewrite.c>
    Options +FollowSymLinks -Indexes

    RewriteEngine On

    RewriteCond %{HTTP:Authorization} .
    RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]

    RewriteCond %{HTTP_HOST} ^([a-z]{2})\.([a-z0-9-]+\.[a-z]+)$ [NC]
    RewriteRule .* - [QSA,E=LANGUAGE:%1]

    RewriteCond %{ENV:LANGUAGE} ^$
    RewriteRule .* - [QSA,E=LANGUAGE:en]

    RewriteCond %{QUERY_STRING} !language=
    RewriteRule ^(.*)$ $1?language=%{ENV:LANGUAGE} [QSA]

    RewriteCond %{REQUEST_URI} !^/public
    RewriteRule ^(.*)$ /public/$1?language=%{ENV:LANGUAGE} [L,QSA]

</IfModule>

字符串
使用上述方法,即使重定向到公用文件夹下的文件时,语言检测也应该起作用。%{ENV:LANGUAGE}变量将在整个重写过程中被保留,因此正确的语言参数应该被传递给公用文件夹中的文件。

相关问题