为什么这个mod-rewrite规则不起作用?

时间:2009-12-01 02:56:22

标签: apache mod-rewrite

我的机器上有一个开发站点

localhost/~Jason/hfh/admin/?admin=collections

我的.htaccess文件位于/ hfh / admin /目录中。它说:

RewriteEngine On
RewriteBase /~Jason/hfh/
RewriteRule ^([A-Za-z0-9\-\_]*)$ index.php?admin=$1

但是当我去

localhost/~Jason/hfh/admin/collections

我收到“找不到页面”错误。谁能告诉我为什么?

(这与this link的另一个问题有关。)

3 个答案:

答案 0 :(得分:1)

如果/ hfh / admin /中有.htaccess文件,那就是开头的基础。

RewriteBase /~Jason/hfh/admin/
那么你可能会看到你的期望。此外,当文件/目录存在时,您可能希望子句不重定向。

键入预期的结果URL是否有效?

/~Jason/hfh/admin/index.php?admin=Collections

编辑:

如果你将整个地段改为:

,会发生什么
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /~Jason/hfh/admin/index.php?admin=$1 [L]

答案 1 :(得分:0)

当你想要/〜Jason/hfh/admin/index.php?admin=collections.

尝试将规则更改为:

RewriteRule ^([A-Za-z0-9\-\_]*)$ admin/index.php?admin=$1

答案 2 :(得分:0)

现在简短的直接答案似乎是:你不能在你的localhost上使用mod_rewrite。