2015-06-26 3 views
2

Проблема заключается в следующем. Только/пользователь должен быть HTTPS, а остальная часть сайта должна быть HTTP. Я создал два правила перезаписи. Второй работает, но первый не работает.HTTP-HTTPS работает, но по-другому работает

У меня есть поиск в течение длительного времени, но не может найти вопрос:

RewriteEngine On 
RewriteBase/

#RewriteEngine On 
RewriteCond %{HTTPS} on 
RewriteCond %{REQUEST_URI} !^/user$ [NC] 
RewriteRule ^(.*)$ http://%{HTTP_HOST}%{REQUEST_URI} [R=302,L] 

#RewriteEngine On 
RewriteCond %{HTTPS} off 
RewriteCond %{REQUEST_URI} ^/user [NC] 
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R=302,L] 

Любой, кто может помочь мне?

+0

Есть ли еще правила в этом .htaccess? – anubhava

ответ

2

2-е правило может работать только, а не первое, потому что у вас нет условия, которое заканчивается с использованием $, когда оно соответствует только /user по второму правилу. Так что если ваш url имеет /user/morestuff. Первое правило не будет работать. Это будет точно так же точно /user. Удалите $ после пользователя в первом правиле и посмотрите, поможет ли он вам.

RewriteEngine On 
RewriteBase/

RewriteCond %{HTTPS} on 
RewriteCond %{REQUEST_URI} !^/user [NC] 
RewriteRule ^(.*)$ http://%{HTTP_HOST}%{REQUEST_URI} [R=302,L] 

RewriteCond %{HTTPS} off 
RewriteCond %{REQUEST_URI} ^/user [NC] 
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R=302,L] 
+0

Я только что испытал это, похоже, не работает для меня. Навигация на '/ user' включает HTTPS. Затем изменение URI запроса на '/ hello' не возвращается к HTTP. –

+0

@MikeRockett Я смотрел на что-то еще в своем предыдущем комментарии. во всяком случае, Да, эти правила меняют их. Если вы перейдете к/пользователю с помощью https и затем измените на/hello, он изменит его на http. Я не уверен, что вы пытаетесь, но это работает для меня. Только его первое правило не работало. –

+0

(хе-хе, у меня был ответ, напечатанный там ...) Это странно. Возможно, это сработает, только если у меня есть сертификат для теста VirtualHost, с которым я тестирую? –

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

  • Нет связанных вопросов^_^