RewriteRule处理http但在https上中断

时间:2014-11-06 16:40:25

标签: php apache .htaccess mod-rewrite

我在htaccess中有一些RewriteRule,为我的目标网页提供了一些漂亮的网址。该网址可能看起来像www.site.com/new-document,我的RewriteRule会将其设为www.site.com/index.php?page=new-document

这样我可以保留漂亮的url并使用index.php根据页面变量更改文本。

一切都在http上完美运行但是一旦我将https添加到url,我就会收到Not Found错误,因为RewriteRule没有触发。

这是我的htaccess代码的副本

<IfModule mod_rewrite.c>

RewriteEngine On

RewriteRule    ^new-document$            index.php?page=new-document
RewriteRule    ^old-document$            index.php?page=old-document

</IfModule>

2 个答案:

答案 0 :(得分:2)

Grasshopper和anubhava指出我正确的方向!

我的问题是https虚拟主机没有AllowOverride All指令。

<Directory /var/www/>
    Options Indexes FollowSymLinks MultiViews
    AllowOverride All
    Order allow,deny
    allow from all
</Directory>

答案 1 :(得分:1)

您是否可以在没有RewriteRule的情况下访问HTTPS URL?听起来Apache可能正在使用不同的虚拟主机,或者根本不接受HTTPS。