Запросы HTTPS игнорируют правило перезаписи

У меня есть простое правило перезаписи в моем файле .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 и различных форумах безрезультатно.

Спасибо!


person Jeremy    schedule 24.01.2011    source источник
comment
Как вы думаете, почему .php не подходит поисковой системе?   -  person Gumbo    schedule 24.01.2011
comment
Вы правы - .php удобен для поисковых систем. Думаю, я имел в виду слова Тима Бернерса Ли о крутых URI — w3.org/Provider/Style. /URI   -  person Jeremy    schedule 24.01.2011


Ответы (2)


Насколько я могу судить, в вашем правиле ничего не зависит от порта или протокола. Мое обоснованное предположение состоит в том, что ваши сайты HTTP и HTTPS работают с разными настройками: либо они используют другой корень документа, либо второй не AllowOverride что угодно (требуется All или FileInfo).

person Álvaro González    schedule 24.01.2011
comment
Спасибо за ответ. Я думаю ты прав. Я использую MAMP (аналог WAMP для Windows/XAMPP для Linux). Я не совсем уверен, как они предварительно настраивают SSL Vhosts. Я проведу небольшое исследование и посмотрю, смогу ли я понять это. Спасибо, что нашли время ответить на мой вопрос. - person Jeremy; 24.01.2011

Предполагая, что они оба обслуживаются из одной и той же строфы ‹Directory›, сравните директиву AllowOverride для https ‹VirtualHost› с директивой без SSL.

person mh.    schedule 24.01.2011
comment
Спасибо за чаевые. Похоже, мне нужно посмотреть на мой виртуальный хост SSL, чтобы решить эту проблему. - person Jeremy; 24.01.2011