我设置了以下重写规则
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
那么,我该如何解决这个问题呢?
谢谢!
答案 0 :(得分:0)
在您的规则上方添加RewriteBase
:
RewriteBase /~user1/web/newsite/
ubuntu上的Apache试图猜测重写规则的目标是URI路径还是文件路径,并且猜测错误,所以你必须告诉它真正的相对URI基础是什么。