2

我有一个 .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”(目前正在发生)。

我该怎么做?

4

2 回答 2

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] 
于 2013-10-10T21:12:13.163 回答
3

您的 .htaccess 文件中必须有一条规则,您可以在其中设置将所有打开 www 的 url 重定向到 www。您无需更改此文件。

你应该做这个:

在您的子域中创建一个 .htaccess 文件并在其中添加以下代码。

RewriteEngine on
RewriteBase /

保存此文件。现在一切正常。

于 2013-10-29T13:38:53.523 回答