Apache mod#u重写日志显示的是';是预期的,但仍然得到404?

Apache mod#u重写日志显示的是';是预期的,但仍然得到404?,apache,mod-rewrite,http-status-code-404,Apache,Mod Rewrite,Http Status Code 404,我正在尝试从我的用户目录重定向以下内容: / > index.php?module=home /MODULE/ > index.php?module=MODULE /MODULE/ACTION > index.php?module=MODULE&action=ACTION 以下是我的规则: RewriteEngine On # Rewrite to home page. # Input: # Output: index?

我正在尝试从我的用户目录重定向以下内容:

/              > index.php?module=home
/MODULE/       > index.php?module=MODULE
/MODULE/ACTION > index.php?module=MODULE&action=ACTION
以下是我的规则:

RewriteEngine On

# Rewrite to home page.
#   Input:
#   Output: index?module=home
RewriteRule ^$ index.php?module=home [L,QSA,NC]

# Redirects to a module
#   Input:  MODULE/
#   Output: index.php?module=MODULE
RewriteRule ^(\w+)/?$ index.php?module=$1 [L,QSA,NC]

# Redirects to a module with the specified action
#   Input:  MODULE/ACTION/
#   Output: index.php?module=MODULE&action=ACTION
RewriteRule ^(\w+)/(\w+)/?$ index.php?module=$1&action=$2 [L,QSA,NC]
只是我总是得到一个404

日志显示了我的期望:

[perdir /home/james/public_html/mysite/] rewrite 'user/login' -> 'index.php?module=user&action=login', referer: http://localhost/~james/mysite/
[perdir /home/james/public_html/mysite/] add per-dir prefix: index.php -> /home/james/public_html/mysite/index.php, referer: http://localhost/~james/mysite/
它正确地重写到所需的URL,并添加了用户目录,那么为什么要使用404呢


从访问日志中找不到的文件:

"GET /~james/mysite/user/login HTTP/1.1" 404 1130 "http://localhost/~james/mysite/"

我通过添加以下内容来修复它:

RewriteBase /~james/mysite/

奇怪的是,它如何正确解析URL,但返回404。也许比我聪明的人可以更清楚地说明这一点。

你能看看apache访问日志,看看它返回了什么文件404吗?@D.Kasipovic我已经将它添加到问题的末尾。正如我所看到的,/user/login没有被重定向,但是/user/login/应该是吗?我尝试了这两种方法<代码>/user/login/也不起作用。规则不应该因为模式中的
/?
而不关心尾随的
/
。存在尾部斜杠时,访问日志略有不同。代码是
404983
而不是上面的
4041130
。我不确定这意味着什么。谢谢你的提示!在阅读你的解决方案之前,我已经花了3个小时弄清楚为什么没有任何线索。。。