Исключать определенные вложенные папки и домены при перенаправлениях
-
20-09-2019 - |
Вопрос
Это продолжение из Перенаправлять только HTML-файлы?
Как я могу изменить свой .htaccess
чтобы заставить его исключить определенные вложенные папки или поддомены из перенаправления только для HTML?Я попытался использовать этот код, чтобы исключить подпапку "downloads" и поддомены "dev" и "support", но это не сработало:
RewriteCond %{HTTP_HOST} ^pandamonia.us$ [OR]
RewriteCond %{HTTP_HOST} ^www.pandamonia.us$ [OR]
RewriteCond %{HTTP_HOST} !download [OR]
RewriteCond %{HTTP_HOST} !faq
RewriteCond %{HTTP_HOST} !support [OR]
RewriteRule /.+\.html$ "http\:\/\/pandamonia\.us\/" [L]
Решение
Вам нужно проверить ЗАПРОС_УРИ или весь матч из RewriteRule
$0
для этого; HTTP_HOST содержит только имя хоста текущего запроса.Вам также необходимо изменить логическое выражение вашего состояния:
RewriteCond %{HTTP_HOST} ^pandamonia\.us$ [OR]
RewriteCond %{HTTP_HOST} ^www.pandamonia\.us$
RewriteCond %{REQUEST_URI} !^/download/
RewriteCond %{REQUEST_URI} !^/faq/
RewriteCond %{REQUEST_URI} !^/support/
RewriteRule /.+\.html$ http://pandamonia.us/ [L]
Другие советы
Для тех, кто ищет краткое представление о предыдущем ответе Гумбо (где он упоминает ситуации, когда следует (и не следует) использовать [ИЛИ], Я нашел эту тему WMW очень полезной: http://www.webmasterworld.com/apache/3522649.htm