繁体   English   中英

.htaccess重定向问题-www重定向按预期工作,但index.html不重定向到根目录

[英].htaccess redirect issue - www redirect working as expected, but index.html not redirecting to root

我发现整个网络上都存在许多问题,但是目前没有任何一个可以解决我的.htaccess难题! 在我的.htaccess文件中,我有规则都将a)非www重定向到www和b)index.html重定向到根。 满足非www到www的条件并成功重定向。 但是,index.html文件没有重定向到根目录。

我还用http://htaccess.madewithlove.be进行了测试。 那里的调试日志指示“不支持此变量:%{THE_REQUEST}”,随后,不满足index.html重定向的重写条件,但是我无法推测为什么或该变量是真正的罪魁祸首。 我还将提到该特定域是另一个域的子域/附加域。 下面描述的.htaccess文件位于子域的根目录中。 目前,主域级别的.htaccess文件为空。

这是我现有的.htaccess内容:

Options +FollowSymLinks
RewriteEngine On
RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /.*index\.html?\ HTTP/
RewriteRule ^(.*)index\.html?$ http://www.example.com/$1 [R=301,L]
RewriteCond %{HTTP_HOST} ^example\.com$ [NC]
RewriteRule ^(.*)$ http://www.example.com/$1 [R=301,L]

感谢您的帮助!

将您的规则保留在root .htaccess中:

DirectoryIndex index.html
Options +FollowSymLinks
RewriteEngine On

RewriteCond %{HTTP_HOST} ^example\.com$ [NC]
RewriteRule ^ http://www.%{HTTP_HOST}%{REQUEST_URI} [R=302,L,NE]

RewriteCond %{THE_REQUEST} /index\.html [NC]
RewriteRule ^(.*?)index\.html$ /$1 [L,R=302,NC,NE]

在新的浏览器中对此进行测试。

删除第一个RewriteCond。 您不需要它。 仅第一个RewriteRule即可解决您的问题。

也许您还想更新您的第一个RewriteRule 在当前形式下,它将重定向(无论使用哪个域)到http://www.example.com/ 如果要“保留”使用的子域,请使重定向相对:

RewriteRule ^(.*)index\.html?$ /$1 [R=301,L]

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM