Apache 为什么不是';这条重写规则不适用吗?

Apache 为什么不是';这条重写规则不适用吗?,apache,.htaccess,mod-rewrite,Apache,.htaccess,Mod Rewrite,我有一个网站,其中有大量使用绝对路径的资产,即: <img src=\"/_files/images/shell/logo.jpg\"> 我曾经让它在某个时候工作过,但我把它弄得一团糟,现在它坏了,我不知道为什么 编辑: 我在本.htaccess中也有以下内容,可能会干扰,也可能不会干扰: RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_URI

我有一个网站,其中有大量使用绝对路径的资产,即:

<img src=\"/_files/images/shell/logo.jpg\">
我曾经让它在某个时候工作过,但我把它弄得一团糟,现在它坏了,我不知道为什么

编辑:

我在本.htaccess中也有以下内容,可能会干扰,也可能不会干扰:

RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_URI} !404\.shtml|500\.shtml|favicon\.ico|index\.php{1}
RewriteRule (.*) /~hazelwoodconstru/ [QSA,L]

您需要使规则的匹配更加严格,并删除前导斜杠:

RewriteRule ^_files/ /~hazelwoodconstru/%{REQUEST_URI} [L,R]

如果您不希望外部重定向,请删除
,R
标志。

似乎发生的是,纯旧的绝对文件路径不会使用
arraybox.net/~hazelwoodconstru/filepath
-它们直接转到
arraybox.net/filepath
。在主目录arraybox.net上写入.htaccess对我来说不起作用,因为将有多个站点使用此设置,并且无法确定资产实际位于哪个/home/目录

我采用的解决方案是:

我没有使用用户目录
arraybox.net/~hazelwoodconstru
,而是设置了一个子域
hazelwood.arraybox.net

然后,我编辑了vhosts配置,将该子域的文档根目录更改为指向/home/hazelwoodconstru目录(我还必须更改用户)

此外,我还必须修改vhosts.local,将phpopenbasedirprotect更改为使用documentroot。然后我不得不在/home/目录中添加
allow from all


它现在正在子域上工作。

无bean-在上面添加了一些信息:可能会产生干扰的其他规则。@SarahBromley您需要在现有规则之前添加此规则,该规则将所有内容全部路由到
/~hazelwoodconstru/
目录,因此,在该规则之后的任何事情都将永远无法实现。@SarahBromley dunno然后,该规则在香草apache中对我来说非常好,文档根中有一个空白的htaccess文件。我有一种预感,这不仅仅是一个规则输入错误……因为它正在工作,然后停止了。我想知道这是否与服务器有关?
RewriteRule ^_files/ /~hazelwoodconstru/%{REQUEST_URI} [L,R]