如何停止.htaccess将子域重定向到主站点?

时间:2013-10-10 21:06:06

标签: .htaccess redirect url-rewriting subdomain

我有一个.htaccess问题。基本上我的.htaccess将我新创建的子域重定向到主站点,我不希望它这样做。我们假设我的域名为“www.beans.com”,子域名为“shop.beans.com”,位于public_html下的/shop/文件夹中。这是.htaccess:

DirectoryIndex index.php enmain.php

ErrorDocument 404 /404.html

## EXPIRES CACHING ##

ExpiresActive On
ExpiresByType image/jpg "access plus 1 week"
ExpiresByType image/jpeg "access plus 1 week"
ExpiresByType image/gif "access plus 1 week"
ExpiresByType image/png "access plus 1 week"
ExpiresByType image/ico "access plus 1 year"
ExpiresByType text/css "access plus 1 week"
ExpiresByType text/javascript "access plus 1 week"
ExpiresByType text/x-javascript "access plus 1 week"
ExpiresByType image/x-icon "access plus 1 year"
ExpiresByType text/xml "access plus 2 hours" 
ExpiresDefault "access plus 1 hour"

## EXPIRES CACHING ##

RewriteEngine On
    RewriteCond %{HTTP_HOST} !^www.beans.com$ [NC]
    RewriteRule ^(.*)$ http://www.beans.com/$1 [L,R=301]

    RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /([^/]*/)*index\.(html?|php)(\?[^\ ]*)?\ HTTP/
    RewriteRule ^(([^/]*/)*)index\.(html?|php)$  http://www.beans.com/$1  [R=301,L]
# Start CloudFlare:beans.com rewrite. Do not Edit 
RewriteEngine On 
RewriteCond %{HTTP_HOST} ^beans.com 
RewriteRule ^(.*)$ http://www.%{HTTP_HOST}/$1 [R=301,L] 
# End CloudFlare rewrite. 

总而言之,我希望当我浏览'shop.beans.com'时不要被重定向到'www.beans.com'(目前正在发生)。

我该怎么做?

2 个答案:

答案 0 :(得分:4)

首先,你有2条规则做同样的事情,即添加www.

1 - 删除此规则:

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

2 - 然后改变最后一条规则:

RewriteCond %{HTTP_HOST} ^beans\.com$ [NC]
RewriteRule ^ http://www.%{HTTP_HOST}%{REQUEST_URI} [R=301,L] 

答案 1 :(得分:3)

您的.htaccess文件中必须有一条规则,您可以在其中将所有打开www的所有网址重定向到www。你不需要改变这个档案。

你应该这样做:

在子域中创建.htaccess文件,并在其中添加以下代码。

RewriteEngine on
RewriteBase /

保存此文件。 现在所有的事情都能正常运作。