Mod_rewrite在Windows和Ubuntu上有不同的结果

时间:2012-09-29 23:29:11

标签: windows linux .htaccess mod-rewrite ubuntu

我设置了以下重写规则

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ core/index.php [L]

并且网站架构是

newsite
 ﹂ .htaccess
 ﹂ core
     ﹂ index.php

如果我在Windows上使用网址: http:// localhost / web / newsite / test 它将重定向到 /web/newsite/core/index.php
它工作!

但如果在Ubuntu上使用url http:// localhost / ~user1 / web / newsite / test 它将重定向到 /home/user1/public_html/web/newsite/core/index.php
/~user1/web/newsite/core/index.php

那么,我该如何解决这个问题呢? 谢谢!

1 个答案:

答案 0 :(得分:0)

在您的规则上方添加RewriteBase

RewriteBase /~user1/web/newsite/

ubuntu上的Apache试图猜测重写规则的目标是URI路径还是文件路径,并且猜测错误,所以你必须告诉它真正的相对URI基础是什么。