URL重写是否会停止使用CNAME子域?

时间:2013-12-16 14:52:04

标签: apache mod-rewrite rewrite

我想将example.com的所有http请求重写为www.example.com。

我正在使用下面的.htaccess代码:

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

2个问题:

  1. 这种做法会阻止我使用子域名(例如cdn.example.com映射到cloudflare或support.example.com映射到zendesk)?如果没有,请解释为什么/方法实际达到的目的。

  2. 如果它正常工作,为什么访问example.com时浏览器网址不会更新以显示www.example.com?

  3. 由于

1 个答案:

答案 0 :(得分:0)

  1. 它不应该阻止您使用其他子域,因为这些子域必须在DNS级别设置,并且通常不应该访问您的Apache服务器。
  2. 它应该工作。确保在您的Apache配置中启用了mod_rewrite并将AllowOverride设置为All
  3. 您可以尝试的其他规则是

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

    这样您只会将非子请求的请求重写为www.example.com