这是来自/ ~new /
下的.htaccess# invoke rewrite engine
RewriteEngine On
# force domain.com to www.domain.com
RewriteCond %{HTTP_HOST} !^www\.
RewriteRule ^(.*)$ http://www.%{HTTP_HOST}/$0 [R=301,L,NC]
访问http://domain.com/~new/hello时,会将其重写为http://www.domain.com/hello
正在添加www.
,但由于某种原因,它忽略了/ ~new /子目录。
有谁知道可能导致这种情况的原因?仅供参考,TLD中有.htaccess但它是空的。我知道我可以使用/ ~new /到正则表达式替换字符串,但我更喜欢通用解决方案(为了便携性)而且我不确定为什么它首先剥离它。我也尝试过使用RewriteBase,但却无法使用它。
由于
答案 0 :(得分:2)
我认为{REQUEST_URI}通常会出现在你的重写规则中:
RewriteEngine On
RewriteCond %{HTTP_HOST} !^www..*
RewriteCond %{HTTP_HOST} !^$
RewriteCond %{HTTP_HOST} ^([^.]*).(com|com/)
RewriteRule ^.*$ www.%1.%2%{REQUEST_URI} [R=301,L]