使用.htaccess重写到php的路径包括

时间:2012-01-04 12:30:30

标签: php .htaccess

我不是.htaccess的专家,所以如果这个问题听起来很愚蠢,那就很抱歉。

我的ISP将整个网站移至新服务器。 root的路径已更改。许多文件使用php包含哪条路径硬编码到旧路径。我想避免手动重写所有内容。我正在尝试使用.htaccess,就像这样:

Options +FollowSymlinks
RewriteEngine on
RewriteRule /oldpath/(.*) /newpath/$1 [NC]

但它不起作用。我做错了什么?

2 个答案:

答案 0 :(得分:1)

通过Apache通过Web请求激活

mod_rewrite,而PHP include()可以直接访问文件系统,从而绕过Web请求。因此,.htaccess文件中的任何RewriteRules都不会通过调用PHP include()require()函数来执行。


相对路径

在.htaccess文件中解决此问题的方法是设置PHP包含路径,如下所示:

php_value include_path ".:/usr/local/lib/php:/your/new/base/include/path"

有关changing configuration settings的详细信息,请参阅PHP手册。

这也可以在带有以下内容的引导程序PHP文件中进行更改:

ini_set('include_path', ini_get('include_path') . ':/your/new/base/include/path');

绝对路径

您别无选择,只能在代码库中进行查找和替换。正如@Crontab建议你应该使用基本路径的中央声明。

答案 1 :(得分:0)

您是否检查过Apache是​​否允许.htaccess覆盖您的默认配置? 您应该在http docs文件夹的根目录或任何需要的地方使用AllowOverride All之类的内容