为什么这个Apache mod_rewrite RewriteRule不起作用?

时间:2009-11-30 01:28:38

标签: apache mod-rewrite

我正在尝试让Apache mod重写在我的本地机器上工作。我正在使用PHP 5运行OSX并且启用了Apache mod重写模块。

我有一个名为localhost / ~Jason / hfh / admin的目录,其中包含基于$ _GET变量调用的各种PHP包含。我想让用户输入(理论上)

localhost/~Jason/hfh/admin/pages 

并将该网址保留在地址栏中,而显示的内容为

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

所以

我创建了一个位于/ hfh目录中的.htaccess文件。在里面,我把这个mod重写文本:

RewriteEngine On
RewriteRule ^admin/([^/.]+)/?$ admin/?admin=$1 [L]

当我进入浏览器并输入

localhost/~Jason/hfh/admin/pages

我收到“问题加载页面”错误,Firefox说“哎呀。由于某种原因,Firefox无法加载此页面。”

任何人都可以帮我解决这个问题吗?我用regex和mod重写这么困难......

2 个答案:

答案 0 :(得分:0)

尝试在RewriteRule中明确编写index.php。

RewriteRule ^admin/([^/.]+)/?$ admin/index.php?admin=$1 [L]

您可能还会发现将此指令移动到/ admin /本身中的.htaccess文件是更清晰的组织,从而删除规则中的重复并使规则更容易在以后查找。

答案 1 :(得分:0)

到目前为止答案似乎是:你不能在localhost上使用mod_rewrite。