2016-08-22 2 views
0

У меня нет большого опыта использования правил перезаписи htaccess, поэтому я надеюсь, что кто-то может помочь..htaccess - поддомен всегда перенаправляется в основной домен

Я создал субдомен для веб-сайта, который я хочу использовать для разработки, однако я думаю, что текущий файл .htaccess вызывает перенаправление на основной домен. Это текущий файл .htaccess:

<Files 403.shtml> 
order allow,deny 
allow from all 
</Files> 

RewriteEngine On 
RewriteBase/

RewriteCond %{HTTP_USER_AGENT} libwww-perl.* 
RewriteRule .* ? [F,L] 

RewriteCond %{HTTP_HOST} !^www.domain.co.uk$ [NC] 
RewriteRule ^(.*)$ http://www.domain.co.uk/$1 [L,R=301] 

RewriteCond %{HTTP_HOST} ^160\.153\.16\.12 
RewriteRule (.*) http://www.domain.co.uk/$1 [R=301,L] 


RewriteCond %{HTTP_HOST} ^domain\.co\.uk$ [OR] 
RewriteCond %{HTTP_HOST} ^www\.domain\.co\.uk$ 

Домен саб dev.website.co.uk

Любые советы будут очень благодарностью.

+0

вам необходимо объяснить структуру обоих сайтов. .htaccess может быть размещен в любом месте в корнях документов ваших сайтов. –

+0

Как получилось, что поддомен не находится в .htaccess? похоже, что это неправильный файл .htaccess. – carmel

ответ

0

У вашего .htaccess есть правила, которые говорят ему перенаправить на основной домен. Просто удалите их из .htaccess вашего субдомена.

RewriteCond %{HTTP_HOST} !^www.domain.co.uk$ [NC] 
RewriteRule ^(.*)$ http://www.domain.co.uk/$1 [L,R=301] 

RewriteCond %{HTTP_HOST} ^160\.153\.16\.12 
RewriteRule (.*) http://www.domain.co.uk/$1 [R=301,L] 

# I don't know what these are for 
RewriteCond %{HTTP_HOST} ^domain\.co\.uk$ [OR] 
RewriteCond %{HTTP_HOST} ^www\.domain\.co\.uk$ 
0

Я вижу много проблем в вашем .htaccess, может быть, вы выложили только часть его.

Главная проблема, которую я вижу, следующие строки поймать любой случай, когда HTTP_HOST отличается от www.domain.co.uk и перенаправлять www.domain.co.uk

RewriteCond %{HTTP_HOST} !^www.domain.co.uk$ [NC] 
RewriteRule ^(.*)$ http://www.domain.co.uk/$1 [L,R=301] 

Следующий улов любом случае HTTP_HOST отличается от ^160\.153\.16\.12 и перенаправлять www.domain.co.uk

RewriteCond %{HTTP_HOST} ^160\.153\.16\.12 
RewriteRule (.*) http://www.domain.co.uk/$1 [R=301,L] 

Насколько я знаю, остальные RewriteCond бесполезны без соответствующего правила перезаписи.

RewriteCond %{HTTP_HOST} ^domain\.co\.uk$ [OR] 
RewriteCond %{HTTP_HOST} ^www\.domain\.co\.uk$ 

директива RewriteCond определяет условие правила. Один или несколько RewriteCond могут предшествовать директиве RewriteRule. Следующее правило: , тогда используется только тогда, когда и текущее состояние URI соответствует его шаблону , и если эти условия выполнены.

И в конце, как указано в заявлении @Marc B, вам нужно объяснить, где находится .htaccess, и если оба сайта имеют один и тот же корень.