.htaccess添加www。不像预期的那样工作

时间:2014-06-11 16:11:54

标签: regex apache .htaccess mod-rewrite redirect

我想添加一个www。到我的域名。如果有人去了mydomain.com'它需要发送到www.mydomain.com'。一切正常。问题是如果有人输入&m ;; mydomain.com/subfolder/subfolder3'它重定向到' www.mydomain.com/mydomain/subfolder/subfolder3'而不是' www.mydomain.com/subfolder/subfolder3'

我的.htaccess位于www文件夹旁边的htdocs文件夹中。

我的.htaccess:

php_flag display_errors Off

php_value upload_max_filesize 25M
php_value post_max_size 25M

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

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

AuthUserFile /home/bla/bla/bla/domains/mydomain/htdocs/beta/.htpasswd
AuthGroupFile /dev/null
AuthName "WebDav only for authorized users"
AuthType Basic

<LimitExcept GET POST HEAD>
require valid-user
</LimitExcept>

如您所见,有2个域名。如果有人在第二个域中键入,则还需要重定向到第一个域。

&#39; AuthUserFile&#39;你可以看到不再存在。我可以安全地删除它下面的所有内容吗?

1 个答案:

答案 0 :(得分:0)

您可以在单个重写规则中执行此操作:

RewriteEngine On

RewriteCond %{HTTP_HOST} ^(mydomain|(www\.)?myseconddomain)\.com$ [NC]
RewriteRule ^ http://www.mydomain.com%{REQUEST_URI} [R=301,L]

RewriteCond %{HTTP_HOST} ^((?!www\.)[^.]+)\.myseconddomain\.com$ [NC]
RewriteRule ^ http://%1.mydomain.com%{REQUEST_URI} [R=301,L]