我的.htaccess文件中有一个简单的重写规则,可以为访问者创建搜索引擎友好的URL。该规则适用于http连接,但由于某种原因,当请求通过https进行时,规则将被忽略。
以下是.htaccess文件的内容:
<IfModule mod_rewrite.c>
Options +FollowSymLinks
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([a-z\-]+)/$ /$1.php [L]
</IfModule>
为什么https请求会忽略该规则的任何想法或建议,但http请求会确认该规则?任何帮助将不胜感激。我花了整整一天在Google和各种论坛上都无济于事。
谢谢!
答案 0 :(得分:1)
据我所知,你的规则没有任何东西取决于端口或协议。我的有根据的猜测是你的HTTP和HTTPS站点在不同的设置下运行:他们要么使用不同的文档根,要么第二个没有AllowOverride任何东西(需要All
或FileInfo
)
答案 1 :(得分:0)
假设它们都是在同一&lt;目录&gt;之外提供的。节,比较https&lt; VirtualHost&gt;的AllowOverride指令非ssl。