Назад | Перейти на главную страницу

Можно ли переписать некоторые строки запроса на HTTPS и оставить все остальное на HTTP?

Я переписываю строки запроса на красивые URI, например: index.php?q=/en/contact становится /en/contact и все прекрасно работает ..

# httpd.conf

# HANDLE THE QUERY
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?q=$1 [L,QSA]

Можно ли вообще переписать отдельные запросы, чтобы заставить https и заставить все остальное на http? я пробовал много различные подходы, которые обычно заканчиваются бесконечными циклами. Я мог бы написать плагин для этого на PHP, но подумал, что будет более эффективно обрабатывать это в конфигурации сервера. Буду рад любому совету.

РЕДАКТИРОВАТЬ: Чтобы уточнить, я бы хотел переписать не SSL http://example.com/index.php?q=/en/contact к SSL включен https://example.com/en/contact и каждый запрос, который не /en/contact писать на http://example.com/...

Пример htaccess:

RewriteEngine On
RewriteCond %{HTTPS} !=on
RewriteRule ^en/contact$ https://%{SERVER_NAME}%{REQUEST_URI} [L,R]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{HTTPS} =on
RewriteRule !^en/contact$ http://%{SERVER_NAME}%{REQUEST_URI} [L,R]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?q=$1 [L,QSA]

http://domain/en/contact перенаправить на https://domain/en/contact перепишите на index.php? q = en / contact

http://domain/en/fo переписать на index.php? q = en / fo

https://domain/en/fo перенаправить на http://domain/en/fo переписать в index.php? q = en / fo

https://domain/en/contact перепишите на index.php? q = en / contact