我不断收到以下答案的变体,但它不起作用
RewriteCond %{HTTP_HOST} !^www.alwaysroaming.com$
RewriteRule ^(.*)$ http://www.alwaysroaming.com/$1 [R=301,L]
这个解决方案不好的原因是,如果我去
alwaysromaing.com/site
我永远不会被重定向到 WWW.alwaysroaming.com/site
有人可以提供这里所需的正确重写吗?
答案1
我建议这样做:
RewriteCond %{HTTP_HOST} !^www.alwaysroaming.com$ [NC] 重写规则 ^/(.*)$ http://www.alwaysroaming.com/$1 [R=301,L]
关键部分是第二行中“^”后面的“/”。NC 表示如果有人输入混合/大写字母,它就会起作用。
答案2
这是一个很常见的问题,它属于mod_rewrite 的文档- 您确实读过,对吧?
假设您在端口 80 上运行:
RewriteCond %{HTTP_HOST} !^fully\.qualified\.domain\.name [NC]
RewriteCond %{HTTP_HOST} !^$
RewriteRule ^/(.*) http://fully.qualified.domain.name/$1 [L,R]
如果您没有使用 80 端口,文档中还有另一个示例,并涵盖了其他常见场景