2015-04-19 3 views
1

Я пытаюсь перенаправить любые прямые попытки доступа к sub.example.com/login к исходному домену/uri по адресу example.com/login и по количеству вопросов, которые я уже прочитал в отношении этого точного вещь, казалось бы, легко на поверхности его ...перенаправить любой поддомен в основной домен с помощью .htaccess

Я не знаю, если есть что-то происходит, что это переопределение желаемого результата, но у меня есть следующие правила в моем файле .htaccess , но я 'm все еще может получить доступ к sub.example.com/login без перенаправления.

RewriteEngine On 
RewriteCond %{HTTP_HOST} ^(.+)\.example\.com/login$ [NC] 
RewriteRule ^(.*)$ http://example.com/login$1  [L,R=301] 

На самом деле, просто для полной ясности, вот весь мой .htaccess содержимое файла. Может быть, кто-то еще может увидеть что-то не так, что мне не хватает.

RewriteEngine On 
RewriteBase/
RewriteRule ^index\.php$ - [L] 

# add a trailing slash to /wp-admin 
RewriteRule ^wp-admin$ wp-admin/ [R=301,L] 

RewriteCond %{REQUEST_FILENAME} -f [OR] 
RewriteCond %{REQUEST_FILENAME} -d 
RewriteRule^- [L] 
RewriteRule ^(wp-(content|admin|includes).*) $1 [L] 
RewriteRule ^(.*\.php)$ $1 [L] 
RewriteRule . index.php [L] 

# redirect subdomain login attempts to main domain 
RewriteCond %{HTTP_HOST} ^(.+)\.example\.com/login$ [NC] 
RewriteRule ^(.*)$ http://example.com/login$1  [L,R=301] 
+0

Я думаю, я должен также упомянуть, я перепробовал все вариации на месте этого конкретного конд/правила комбо ... Я положил его на самом верху, прямо под 'RewriteEngine On', и где это сейчас ... Самое дно. – Amygdala

+0

Что делают журналы отладки для модуля перезаписи ([RewriteLog и RewriteLogLevel] (https://httpd.apache.org/docs/2.2/mod/mod_rewrite.html#rewritelog) для apache 2.2, [LogLevel] (https: //httpd.apache.org/docs/2.4/mod/mod_rewrite.html#logging) для apache 2.4)? –

+0

Я просмотрел все журналы, которые я могу найти, и я не вижу никаких упоминаний о перенаправлении или переписывании ... Включено ли mod_rewrite logging по умолчанию или мне нужно что-то сделать для его включения? – Amygdala

ответ

1

Помещенное Перенаправление подобласти Войти переписывает условие & правила только после RewriteBase линии. Это должно помочь решить вашу проблему.

+0

Нет, это не трюк, либо ... Правильно ли выглядит шаблон в правиле перезаписи? Если да, то я склонен к тому, что в другом месте должно быть что-то еще, что переопределяет его ... Не знаю, где, поскольку это единственный файл **. Htaccess **, я могу найти ... – Amygdala

+0

RewriteCond% { HTTP_HOST}! Example.com $ [NC] RewriteRule^(. *) $ Http: //example.com$1 [L, R = 301] Это должно работать. – KNOWARTH

0
RewriteEngine On 
RewriteBase/

# Redirect all subdomains to example.com 
RewriteCond %{HTTP_HOST} !^(.*)\.example\.com$ [NC] 
# Redirect only bar & foo subdomains to example.com 
#RewriteCond %{HTTP_HOST} !^(bar|foo)\.example\.com$ [NC] 
RewriteRule^http://example.com/ [L,R] 
Смежные вопросы