#apache #.htaccess #http #mod-rewrite #url-rewriting
#apache #.htaccess #http #мод-перезапись #url-переписывание
Вопрос:
Цель
Я хотел бы перенаправить определенные страницы моего веб-сайта на http.
Предыстория
У меня есть следующий .htacess
Options All -Indexes
RewriteEngine On
RewriteRule ^(.*).html $1.php [L]
RedirectMatch ^/*$ https://**mydomain_name**/files/index.php
Options SymLinksIfOwnerMatch
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /files/error.php [L]
RewriteCond %{HTTPS} off
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [R,L]
что позволяет мне перенаправлять все на https (и это хорошо работает)
Вопрос
Возможно ли перенаправить все страницы, имеющие адрес, содержащий внутренний (https://mydomain_name/internal /) к http (а не https)?
Ответ №1:
Лучше мы могли бы сохранить условие НЕ обрабатывать запросы для URI, которые содержат inernal, вместо того, чтобы сначала перенаправлять их на https, а затем возвращаться к http для конкретно упомянутых URI.
Options All -Indexes
RewriteEngine On
RewriteRule ^(.*).html $1.php [L]
RedirectMatch ^/*$ https://**mydomain_name**/files/index.php
Options SymLinksIfOwnerMatch
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /files/error.php [L]
RewriteCond %{HTTPS} off
RewriteCond %{REQUEST_URI} !^/internal [NC]
RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [R,L]
Комментарии:
1. Потрясающе! Я не переписал %{REQUEST_URI}! ^/ [NC]
2. Хороший ответ RavinderSingh!