Apache 为什么.htaccess会剥离包含文件夹的内容?

Apache 为什么.htaccess会剥离包含文件夹的内容?,apache,.htaccess,mod-rewrite,Apache,.htaccess,Mod Rewrite,这是来自位于/~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] 访问时,它将被重写为 www.正在像应该的那样添加,但出于某种原因,它忽略了/~new/子目录 有

这是来自位于/~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]
访问时,它将被重写为

www.
正在像应该的那样添加,但出于某种原因,它忽略了/~new/子目录

有人知道这可能是什么原因吗?仅供参考,TLD中有一个.htaccess,但它是空的。我知道我可以在regex替换字符串上添加/~new/,但我更喜欢一个通用的解决方案(为了可移植性),我不知道为什么它首先要将它剥离出来。我也尝试过使用RewriteBase,但无法使其正常工作


谢谢

我想通常{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]

我不得不在你的重写规则中在www之前插入http://并且成功了!另外,由于我的网站位于澳大利亚的一个域名上,我将您的(com | com/)更改为(com.au | com.au/)。谢谢实际上,我最后把最后一部分改成了([a-z\.]{2,6}