2013-09-18 4 views
2

Так что в основном у меня есть поддомен, m.mydomain.com.au, хотя каждый раз, когда я его посещаю, я перенаправлен на www.mydomain.com.au/m.Почему мой поддомен перенаправляется на мой основной домен?

Например, если я попытаюсь перейти к m.mydomain.com.au/contact.php, я автоматически перенаправлены на www.mydomain.com.au/m/contact.php

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

Вся помощь и предложения приветствуются.

Вот мой полный .htaccess файл:

Options +FollowSymLinks 

# Use Mod_deflate to compress static files 
<ifmodule mod_deflate.c> 
<filesmatch ".(js|css|ico|txt|htm|html|php)$"> 
SetOutputFilter DEFLATE 
</filesmatch> 
</ifmodule> 

# Speed up caching 
FileETag MTime Size 

# Expires 
ExpiresActive On 
ExpiresDefault "access plus 366 days" 

# Future Expires Headers 
<filesmatch ".(ico|pdf|flv|jpg|jpeg|png|gif|js|css|swf)$"> 
Header set Expires "Sat, 27 Dec 2014 23:59:59 GMT" 
</filesmatch> 


RewriteEngine On 


RewriteCond %{QUERY_STRING} base64_encode[^(]*\([^)]*\) [OR] 
RewriteCond %{QUERY_STRING} (<|%3C)([^s]*s)+cript.*(>|%3E) [NC,OR] 
RewriteCond %{QUERY_STRING} GLOBALS(=|\[|\%[0-9A-Z]{0,2}) [OR] 
RewriteCond %{QUERY_STRING} _REQUEST(=|\[|\%[0-9A-Z]{0,2}) 
RewriteRule .* index.php [F] 
RewriteCond %{HTTP_HOST} !^www\.mydomain\.com\.au 
RewriteRule ^(.*)$ http://www.mydomain.com.au/$1 [R=permanent,L] 

#RewriteBase/


RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}] 

RewriteCond %{REQUEST_URI} !^/index\.php 

RewriteCond %{REQUEST_URI} /component/|(/[^.]*|\.(php|html?|feed|pdf|vcf|raw))$ [NC] 

RewriteCond %{REQUEST_FILENAME} !-f 

RewriteCond %{REQUEST_FILENAME} !-d 

RewriteRule .* index.php [L] 

ответ

1

Предполагая, что и ваш поддомен и основной домен имеет тот же корень документа (и, таким образом, использовать один и тот же файл Htaccess), это правило, которое вызывает редирект:

RewriteCond %{HTTP_HOST} !^www\.mydomain\.com\.au 
RewriteRule ^(.*)$ http://www.mydomain.com.au/$1 [R=permanent,L] 

Это по существу говорит, если домен is неwww.mydomain.com.au, перенаправить его на http://www.mydomain.com.au/.

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

RewriteCond %{HTTP_HOST} !^www\.mydomain\.com\.au$ [NC] 
RewriteCond %{HTTP_HOST} !^m\.mydomain\.com\.au$ [NC] 
RewriteRule ^(.*)$ http://www.mydomain.com.au/$1 [R=permanent,L] 

Или только перенаправить домен без www.:

RewriteCond %{HTTP_HOST} ^mydomain\.com\.au$ [NC] 
RewriteRule ^(.*)$ http://www.mydomain.com.au/$1 [R=permanent,L] 
+0

Извините, я допустил ошибку в моем вопросе. Повторите приведенные ниже примеры. Переадресация идет на 'www.mydomain.com.au/m', а не' www.mydomain.com.au' – Fizzix

+0

Кажется, не работает. Любые другие предложения? – Fizzix

+0

@fizzix в вашем файле htaccess нет ничего, что перенаправляется в папку '/ m /', поэтому кто знает. –

1

Именно это правило здесь:

RewriteCond %{HTTP_HOST} !^www\.mydomain\.com\.au 
RewriteRule ^(.*)$ http://www.mydomain.com.au/$1 [R=permanent,L] 

Правило в основном говорит, что если HTTP_HOST (то есть HTTP Host: заголовок, который является именем домена используемый для доступа к сайту) не является www.mydomain.com.au, тогда он отправит HTTP-HTTP 301 («постоянное перенаправление») в домен www.

Удалите эти две строки, и вы получите то, что хотите, но вы потеряете каноническое перенаправление имен доменов.

+0

К сожалению, я сделал ошибку в мой вопрос. Повторите приведенные ниже примеры. Переадресация отправляется на 'www.mydomain.com.au/m', а не' www.mydomain.com.au' – Fizzix

+0

Прошу прощения, похоже, не исправила мою проблему. Проверьте внесенные изменения в мой вопрос. – Fizzix

Смежные вопросы