RewriteCond HTTP_HOST все еще проходит - PullRequest
3 голосов
/ 19 марта 2012

Я создаю среду preprod, где клиент и разработчики смогут проверить, все ли работает нормально для их веб-сайта, который они собираются установить, но я должен отключить все перенаправления HTTPS, потому что в этот момент он может упасть Сайт PROD, где ХОЗЯЙКА отправляется в запросе.

Это один из примеров, которые я использую:

RewriteCond %{HTTP_HOST} (www\.)?domain\.com
RewriteCond %{HTTP_HOST} ^s\.domain\.com
RewriteCond %{SERVER_PORT} 80
RewriteCond %{REQUEST_URI} !^/?basket/$
RewriteCond %{REQUEST_URI} !^/?basket/add/
RewriteCond %{REQUEST_URI} !^/?basket/delete/
RewriteCond %{REQUEST_URI} !^/?basket/modify/
RewriteCond %{REQUEST_URI} !^/?basket//add/
RewriteCond %{REQUEST_URI} !^/?basket//delete/
RewriteCond %{REQUEST_URI} !^/?basket//modify/
RewriteCond %{REQUEST_URI} !^/?basket/info_panier.js
RewriteRule ^/?basket/.*$ https://%{SERVER_NAME}%{REQUEST_URI} [R,L]

Проблема, даже если я посещаю:

http://s.domain.com/basket//coordonnees/login/

Он по-прежнему перенаправляет меня на HTTPS-версию, но у меня на s.domain.com есть условие перезаписи, говорящее о том, чтобы пропустить это правило ... Что я делаю не так?

CrazyCoder

1 Ответ

4 голосов
/ 19 марта 2012

Не берите в голову, я нашел это через две секунды, но это может помочь другим людям:

Условие:

RewriteCond %{HTTP_HOST} (www\.)?domain\.com

При столкновении возникло условие:

RewriteCond %{HTTP_HOST} ^s\.domain\.com

Потому что я не положил!с самого начала.Если я положу!до (www.)? domain.com он не будет соответствовать s.domain.com и, следовательно, будет работать нормально ...

...