У меня есть RewriteRule в htaccess, чтобы иметь некоторые красивые URL-адреса для моей целевой страницы. URL-адрес может выглядеть как 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>
Кузнечик и анубхава указали мне в правильном направлении!
Моя проблема заключалась в том, что на виртуальном хосте https не было директивы AllowOverride All.
<Directory /var/www/>
Options Indexes FollowSymLinks MultiViews
AllowOverride All
Order allow,deny
allow from all
</Directory>
Можете ли вы перейти на URL-адрес HTTPS без RewriteRule? Похоже, Apache может использовать другой виртуальный хост или вообще не принимать HTTPS.