2010-08-19 8 views
3

Я использую установку Magento с плагином для одного шага проверки, то есть у меня очень мало страниц, для которых требуется HTTPS. Я хочу контролировать индексирование поиска HTTPS и пользовательский доступ, перенаправляя всю версию HTTPS сайта , за исключением, конечно, для безопасной проверки.Перенаправление HTTPS на HTTP в Magento с исключением выписки (Apache)

Секция безопасного контроля - /onestepcheckout/ (а также включает в себя некоторые вспомогательные страницы, то есть onestepcheckout/failure).

Это то, что у меня есть до сих пор, но HTTPS не пинает на странице проверки с помощью этого кода, перенаправление работает во всех остальных случаях (то есть я отправляю индекс HTTPS для индексации HTTP) только исключение, которое нарушено:

#Redirect HTTPS to HTTP except checkout 
RewriteCond %{HTTPS} on 
RewriteCond %{REQUEST_URI} !^onestepcheckout 
RewriteRule ^(.*)$ http://www.mysite.co.uk/$1 [R=301,L] 

#Require SSL on checkout 
RewriteCond %{HTTPS} !on 
RewriteCond %{REQUEST_URI} ^onestepcheckout\/?$ 
RewriteRule ^(.*)$ https://www.mysite.co.uk/$1 [R=301,L] 

Я тоже смутно осторожной, что /onestepcheckout/ не содержит защищенных ресурсов и, следовательно, исключение может потребоваться добавление к изображениям и таблицы стилей и т.д.

ответ

0

не стоит забывать, что в то время как пути в RewriteRule являются оценивается относительно контекста файла .htaccess, переменная REQUEST_URI относится к действию и поэтому содержит начальную косую черту.

Так что вам нужно

RewriteCond %{REQUEST_URI} ^/onestepcheckout\/?$ 

В качестве альтернативы, Вы можете обратиться к захваченной части из правила перезаписи:

RewriteCond $1 !^onestepcheckout/ 
0

Попробуйте это:

RewriteCond %{REQUEST_URI} onestepcheckout 
    RewriteCond %{HTTPS} !off 
    RewriteRule ^(.*)$ https://%{HTTP_HOST}/$1 [R=301,L] 
Смежные вопросы