我的.htaccess
文件中名为博客的目录中有以下几行。
RewriteCond %{HTTPS} on
RewriteRule ^ http://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
当我执行以下操作时会发生不同的事情:
https://staging.example.com/blog/ - redirect does not work
https://staging.example.com/blog - redirect does work
当存在尾部斜杠时,我的重定向不起作用,为什么会这样?
更新
这是博客/ .htaccess文件。
<IfModule mod_rewrite.c>
RewriteEngine On
# Froce HTTP
RewriteCond %{HTTPS} on
RewriteRule ^ http://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
RewriteBase /blog/
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /blog/index.php [L]
</IfModule>
答案 0 :(得分:2)
https://staging.example.com/blog/ - redirect does not work
这可能是因为blog/.htaccess
的存在。如果确实如此,那么在其他规则之上添加此行:
RewriteEngine On
RewriteCond %{HTTPS} on [OR]
RewriteCond %{HTTP:X-Forwarded-Proto} https
RewriteRule ^ http://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
答案 1 :(得分:1)
如果您的目录名称等于重定向“路径”,则其优先级高于您的规则。
在您的情况下,如果您在DocumentRoot下有“博客”目录,则重定向只会失败。
我们需要更多关于您的结构和其他规则的信息。
但是因为现有的目录阻止了我的重写规则,我一直没有睡觉一晚。