我有一个部分工作的.htaccess
文件,在我的生活中无法找出错误。
这是我的目标:我有example.com
我想要的规范形式www.example.com
。我的工作还可以。我还有一个位于/lang/chinese
文件夹中的子域,我想将其解析为china.example.net
。这也很好。最后,我有(停放的)域名example.net
,我希望将其重定向到example.com
,然后将其解析为www.example.com
。
这是最后一部分不起作用。如果我将www.example.net
放在浏览器中,则会保留在地址栏中。
以下是我的.htaccess
文件的相关部分:
Options +FollowSymlinks
RewriteEngine on
RewriteBase /
RewriteCond %{HTTP_HOST} china.example.com [NC]
RewriteRule ^(.*)$ http://china.example.com$1 [L,R=301]
RewriteCond %{HTTP_HOST} ^example.com [NC]
RewriteRule ^(.*)$ http://www.example.com$1 [L,R=301]
RedirectMatch 301 ^/lang/chinese/(.*)$ http://china.example.com/$1
RewriteCond %{http_host} ^example\.net [nc]
RewriteRule ^(.*)$ http://www.example.com/$1 [R=permanent,nc,L]
显然我在这里做错了。我该如何解决这个问题?
答案 0 :(得分:1)
对于这条规则:
RewriteCond %{http_host} ^example\.net [nc]
RewriteRule ^(.*)$ http://www.example.com/$1 [R=permanent,nc,L]
^
告诉正则表达式匹配行的开头。这意味着你从来没有真正在那里搜索“www”。
我相信你会想要改变:
RewriteCond %{HTTP_HOST} ^(www\.)?example\.net [nc]
Apache的信息: