301 Перенаправляет www и другие поддомены в подкаталоге на не-www

#.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]
  

Обязательно очистите кэш вашего браузера перед тестированием этого нового перенаправления.