4

情况:

我正在将网站从生产环境转移到测试环境。

测试环境url类似于 http://192.168.1.100/~username/

有数千个文件在 html 中使用以下内容

<img src='/images/image.jpg' />

由于请求将根目录http://192.168.1.100/,因此文件为 404。

与其查找和替换所有 html,不如假设有一种简单的方法可以通过 .htaccess 使用 mod_rewrite 修复它。

我试过使用以下

RewriteCond %{REQUEST_URI} !^/~username/
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /~username/$1

但没有按预期工作。

提前致谢。

更新 开发环境位于 cpanel/whm 中。因此,当从请求的 url 中删除用户名时,它现在属于 root 用户。所以,我现在的问题是:如何将 root 用户的 .htaccess 文件更新为 mod_rewrite 回 ~username?

4

1 回答 1

0

如果你删除

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d

它似乎按预期工作,因为对正确 url 的任何请求都不会被重写。

您可能想添加[L]一个标志来表示它是最后一个重写规则,如下所示:

RewriteCond %{REQUEST_URI} !^/~username/
RewriteRule ^(.*)$ /~username/$1 [L]
于 2012-10-20T23:29:18.250 回答