apache RewriteRule 前缀为 wwwwww 而不是 www

问题描述

以这个为例:

RewriteEngine On  
Rewritecond %{HTTP_HOST} !^www\.hslab\.nl
RewriteRule (.*) http://www.hslab.nl/$1 [R=301,L]

如果 www 部分不存在,它将添加到 url 中。 为什么它不能是除 www 之外的其他东西,例如 wwwwwww? 当我这样做时,我会收到 404。

解决方法

根据您显示的示例,您能否尝试以下操作。请确保在测试您的网址之前清除浏览器缓存。

RewriteEngine ON
##Rule when www is present in URL so add only www to url.
Rewritecond %{HTTP_HOST} ^(www)\.hslab\.nl
RewriteRule ^ http://%1%1.hslab.nl%{REQUEST_URI} [NE,R=301,L]

##Rule when www is NOT present in URL,hence add wwwwww to url as per OP
Rewritecond %{HTTP_HOST} !^www\.hslab\.nl
RewriteRule ^ http://wwwwww.hslab.nl%{REQUEST_URI} [NE,L]