0

我设置了以下重写规则

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

网站架构是

newsite
 ﹂ .htaccess
 ﹂ core
     ﹂ index.php

如果我在 Windows 上使用 url: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

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

4

1 回答 1

0

RewriteBase在您的规则上方添加一个:

RewriteBase /~user1/web/newsite/

ubuntu 上的 Apache 试图猜测重写规则的目标是 URI 路径还是文件路径,并且它猜测不正确,因此您必须告诉它真正的相对 URI 基数是什么。

于 2012-09-30T19:29:40.723 回答