在Apache服务器上找不到.htaccess文件的文件

时间:2013-06-17 10:02:16

标签: php apache centos

我的Windows开发机上有这个.htaccess,一切正常

RewriteEngine On
RewriteRule ^(.+[^/])/$ http://%{HTTP_HOST}/webserv/$1 [R=301,L]
RewriteRule   ^login/([0-9]+)/([0-9]+)$   login.php?par1=$1&par2=$2 [L,NC,QSA]

当我在Centos服务器上传它时,我收到错误

404 The requested URL path_to_script/login.php was not found on this server.

我无法理解为什么会这样。该文件肯定存在,我给了权限777.

我已经通过在其中添加垃圾并获得内部错误(500)来检查.htaccess是否实际使用,这意味着它正在工作。

当我使用.htaccess对可以访问其工作目录的IP进行限制时。 mod_rewrite被加载,如我试过的phpinfo()所示。

我在这里不知所措。

修改

我注意到它试图在base_path中搜索,将其附加到根路径,例如。

/path_to_script/path_to_script/login.php

这就是它失败的原因。我该如何解决这个问题?

1 个答案:

答案 0 :(得分:0)

我终于解决了它,但是我不确定自己喜欢什么。至少它有效。如果有人有更好的解决方案,我很乐意看到它。

RewriteRule   ^login/([0-9]+)/([0-9]+)$   http://host/webserv/login.php?par1=$1&par2=$2

我不喜欢这个解决方案的原因是因为我没有给出一个漂亮的网址。它只是重定向。

我仍然不明白为什么如果我写了:

,我会将根目录附加到请求中
RewriteRule   ^login/([0-9]+)/([0-9]+)$   login.php?par1=$1&par2=$2