我有一个.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'(目前正在发生)。
我该怎么做?
答案 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 /
保存此文件。 现在所有的事情都能正常运作。