#.htaccess #url #redirect
#.htaccess #url #перенаправление
Вопрос:
301 Перенаправляет с помощью htaccess все URL-адреса с любыми поддоменами в подкаталоге на не-www
Примеры:
https://www.example.com/forum
Для https://example.com/forum
https://anysubdomains.example.com/forum
Для https://example.com/forum
https://www.example.com/forum/anysubdiretory
Для https://example.com/forum/anysubdirectory
https://anydubdomains.example.com/forum/anysubdiretory
Для https://example.com/forum/anysubdirectory
Приведенный ниже код работает только для www, но как заставить его работать для всех поддоменов:
RewriteEngine on
#the directory the rule should apply to
RewriteCond %{REQUEST_URI} ^/forum/ [NC]
#check if the host string starts with "www"
RewriteCond %{HTTP_HOST} ^www. [NC]
#redirect all www urls to non-www
RewriteRule (.*) https://example.com%{REQUEST_URI} [L,R=301]
Ответ №1:
Чтобы сопоставить любые поддомены, включая www
, вы можете использовать шаблон регулярных выражений, который соответствует всему . Ваше RewruteCondition в настоящее время соответствует только www
поддомену, замените его совпадающим шаблоном RewriteCond %{HTTP_HOST} ^(. ).example.com$ [NC]
.
Вы можете использовать следующее :
RewriteEngine on
RewriteCond %{REQUEST_URI} ^/forum
RewriteCond %{HTTP_HOST} ^(. ).example.com$ [NC]
RewriteRule (.*) https://example.com%{REQUEST_URI} [L,R=301]
Обязательно очистите кэш вашего браузера перед тестированием этого нового перенаправления.