如何使用apache将文件重新路由到其他目录?

时间:2017-10-05 20:17:54

标签: apache .htaccess mod-rewrite

我正在维护一个别人写的网站。他在html中使用绝对路径来请求资产文件,他认为项目总是安装在域的根目录下。

现在我正在测试网站;我在一个子目录中安装了该项目。我想将以某些字符开头的文件重定向到子文件夹。

例如,他写了类似的东西

<img src="/en/wp-content/themes/.....">

现在,服务器将开始在根目录中搜索文件,如example.com/en/wp-content/....

我在/foo/enexample.com/foo/en安装了该项目。我想使用.htaccess重新路由以/en/wp-content/themes开头的网址/foo/en/wp-content/themes。我该怎么办?

这就是我写它的方式:

RewriteEngine On

RewriteRule ^en/wp-content/themes/(.*)$ /foo/en/wp-content/themes/$1

但它没有用......

1 个答案:

答案 0 :(得分:0)

为了确保这不会干扰任何其他htaccess文件使用[L]或[END],我会稍微更改一行:

RewriteEngine On
RewriteRule ^/?en/wp-content/themes/(.*)$ /foo/en/wp-content/themes/$1 [L]

[L]表示上次https://httpd.apache.org/docs/2.4/rewrite/flags.html#flag_l

[END] https://httpd.apache.org/docs/2.4/rewrite/flags.html#flag_end