2011-01-24 175 views
1

我的.htaccess文件中有一个简单的重写规则,为我的访问者创建搜索引擎友好的URL。该规则对http连接起作用很大,但由于某种原因,通过https进行请求时,该规则将被忽略。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请求确认规则?任何帮助将不胜感激。我花了整整一天在谷歌和各种论坛上无济于事。

谢谢!

+1

你为什么认为`.php`不是搜索引擎友好的? – Gumbo 2011-01-24 10:54:45

+1

你是对的 - .php是搜索引擎友好的。我想我是指蒂姆伯纳斯李关于酷URI的说法 - http://www.w3.org/Provider/Style/URI – Jeremy 2011-01-24 17:24:31

回答

1

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

0

假设他们都提供了相同的<目录>节的,比较AllowOverride指令为HTTPS <虚拟主机>到非SSL之一。

+1

感谢您的提示。这听起来像我需要看看我的SSL虚拟主机来解决这个问题。 – Jeremy 2011-01-24 17:22:36