.htaccess -子域名总是重定向到主域名


.htaccess - sub domain always redirects to main domain

我没有太多的经验与。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

你的。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$

我看到你的.htaccess有很多问题,可能你只发布了一部分。

我看到的主要问题,以下行捕获HTTP_HOSTwww.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$
rewritecsecond指令定义了一个规则条件。一个或多个rewritecsecond可以放在rewriterrule指令之前。下面的规则是然后仅在URI的当前状态与当前状态相匹配时使用

最后,正如@Marc B所说,您需要解释。htaccess放在哪里,以及两个站点是否共享相同的根。