Как я могу условно перенаправить на https с помощью mod_rewrite? - PullRequest
2 голосов
/ 20 сентября 2010

Я бы хотел перенаправить на https с помощью mod_rewrite, только если соблюдены определенные условия:

Если URL НЕ содержит слово «администратор» И URL содержит строку 'xyz' (в любой части URL, включая строку запроса)

Это не похоже на работу:

RewriteCond %{REQUEST_URI} xyz [NC,OR]
RewriteCond %{QUERY_STRING} xyz [NC]
RewriteCond %{REQUEST_URI} !administrator [NC]
ReWriteCond %{HTTPS} != on
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [NC,R,L]

Ответы [ 2 ]

1 голос
/ 21 сентября 2010

Попробуйте это правило:

RewriteCond %{THE_REQUEST} !administrator
RewriteCond %{THE_REQUEST} xyz
RewriteCond %{HTTPS} !=on
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [R,L]

Тестирование строки запроса в THE_REQUEST проще, поскольку содержит как путь, так и запрос. Но убедитесь, что ваш xyz не является частью метода или HTTP-версии .

0 голосов
/ 22 октября 2010

В итоге я использовал решение для кодирования, так как не смог заставить его работать с mod_rewrite.(

...