Перенаправление.htaccess для поддомена с подстановочными знаками

У меня есть домен example.com и я создал субдомен с подстановочными знаками, чтобы он указывал на корень DOC

Я хочу, чтобы каждый мог использовать name.example.com а затем попросите его добавить свой идентификатор партнера в конец name.example.com/a/5

Я создал следующий код.htaccess

RewriteCond %{HTTP_HOST} ^name\.example\.com$ [NC]

RewriteRule ^(.*)$ http://www.name.example.com/a/1/$1 [L,R=301,QSA]

это правильно перенаправить на www.name.example.com/a/1/ но мне это нужно как name.example.com/a/1/

когда я удаляю www из правила.htaccess, он делает цикл перенаправления

веб-сервер Apache

2 ответа

Вам необходимо исключить пункт назначения, на который вы перенаправляете.

Пытаться:

RewriteCond %{HTTP_HOST} ^name\.example\.com$ [NC]
RewriteRule ^((?!a).*)$ http://name.example.com/a/1/$1 [L,R=301,QSA]

Или это:

RewriteCond %{HTTP_HOST} ^name\.example\.com$ [NC]
RewriteCond %{REQUEST_URI} !^/a [NC]
RewriteRule ^(.*)$ http://name.example.com/a/1/$1 [L,R=301,QSA]

Очистите кеш браузера или используйте другой браузер, чтобы проверить это.

Позвольте мне сначала поставить ваш код:

RewriteCond %{HTTP_HOST} ^name\.example\.com$ [NC]
RewriteRule ^(.*)$ http://www.name.example.com/a/1/$1 [L,R=301,QSA]

Условие будет соответствовать поддомену name.example.com/whatever без wwww так что он будет работать нормально, потому что вы перенаправляете на www.name.example.com/whatever, но если вы удалите www от замены, это означает, что вы перенаправить name.example.com/whatever в name.example.com/a/1/whatever перенаправить его снова, потому что нет ограничений, как если бы не совпадать каталог /a/ сделать это правило и вот почему зацикливание произошло.

Таким образом, вы должны перенаправить оба исключения /a/ каталог от URI но, говоря, URI не содержит /a/ как следующее:

RewriteEngine on
RewriteCond %{HTTP_HOST} ^(www\.)?name\.example\.com$ [NC]
RewriteRule !/a/   http://name.example.com/a%{REQUEST_URI} [L,R=301]

Примечание: очистите кеш браузера и протестируйте его.

Другие вопросы по тегам