2015-10-21 4 views
0

Вот мой простой .htaccess Моя цель - просто добавить правило, которое перенаправляет/faq -> faq.php на моем сервере HTTPS..htaccess rewriterule не работает с https

# force ssl 
RewriteCond %{SERVER_PORT} ^80$ 
RewriteRule ^(.*)$ https://%{SERVER_NAME}%{REQUEST_URI} [R] 
RewriteRule faq faq.php 

Я также попытался с:

RewriteRule faq faq.php 
RewriteCond %{SERVER_PORT} ^80$ 
RewriteRule ^(.*)$ https://%{SERVER_NAME}%{REQUEST_URI} [R] 

Это прекрасно работает, если я раскомментировать HTTP-> HTTPS правило перенаправления.

так, что я пытаюсь сделать, это:

-> если HTTP, а затем перенаправить на HTTPS

-> если/чаво перенаправления на faq.php

Когда я удалить эти строки

RewriteCond %{SERVER_PORT} ^80$ 
RewriteRule ^(.*)$ https://%{SERVER_NAME}%{REQUEST_URI} [R] 

FAQ-> faq.php работает, но я теряю перенаправление HTTP-> HTTPS всего моего сайта

+0

Все ваши правила раскоментированы в соответствии с вашим вопросом. Что не работает? – anubhava

ответ

1

Вы должны иметь по крайней мере один RewriteCond за каждые RewriteRule.

Попробуйте

RewriteCond %{REQUEST_URI} ^/faq$ 
RewriteRule ^(.*)$ https://%{SERVER_NAME}/faq.php [R] 

после первых двух линий (вместо третьего).

EDIT:

Как я имел в виду, это было

RewriteCond %{SERVER_PORT} ^80$ 
RewriteRule ^(.*)$ https://%{SERVER_NAME}%{REQUEST_URI} [R] 
RewriteCond %{REQUEST_URI} ^/faq$ 
RewriteRule ^(.*)$ https://%{SERVER_NAME}/faq.php [R] 

То есть ДВА RewriteCond директивы.

+0

Не работает: он работает только для: http://example.com/faq -> https://example.com/faq.php, но не для https://example.com/faq -> https: // example .com/faq.php (работает для перенаправления HTTP, а не для перенаправления HTTPS) – yarek

+0

Это должно быть так, что вы имеете его в директиве VirtualHost, которая не имеет опции «Listen 443». Если вы используете отдельную директиву VirtualHost для SSL, вы должны поместить это последнее в эту директиву, а не в «по умолчанию» на порт 80. – Victor

+0

Можете ли вы быть более явным? Мой сайт отлично работает с HTTPS. Проблема в том, что выглядит .htaccess не влияет на https, только на http – yarek

Смежные вопросы