我在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>
答案 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。