Laravel公共文件夹返回404错误(.htaccess)
P粉238433862
P粉238433862 2023-07-28 18:04:13
[PHP讨论组]
<p>我有一个 .htaccess 文件。通过这个文件,我可以通过子域名来检测语言。这方面没有问题。然而,当我将传入的请求重定向到 public 文件夹下的文件时,我会得到一个 404 错误,并且语言也无法正常工作。</p> <pre class="brush:php;toolbar:false;">SetEnv DEFAULT_LANG en &lt;IfModule mod_rewrite.c&gt; 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 [L] &lt;/IfModule&gt;</pre> <p><br /></p>
P粉238433862
P粉238433862

全部回复(1)
P粉604669414

尝试使用以下内容:

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>

使用上述内容,即使在重定向到public文件夹下的文件时,语言检测也应该能正常工作。%{ENV:LANGUAGE}变量将在整个重写过程中保持不变,因此应该将正确的语言参数传递给public文件夹中的文件。

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号