HTTPS请求忽略重写规则

时间:2011-01-24 08:21:34

标签: apache ssl rewrite mamp

我的.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和各种论坛上都无济于事。

谢谢!

2 个答案:

答案 0 :(得分:1)

据我所知,你的规则没有任何东西取决于端口或协议。我的有根据的猜测是你的HTTP和HTTPS站点在不同的设置下运行:他们要么使用不同的文档根,要么第二个没有AllowOverride任何东西(需要AllFileInfo

答案 1 :(得分:0)

假设它们都是在同一&lt;目录&gt;之外提供的。节,比较https&lt; VirtualHost&gt;的AllowOverride指令非ssl。