Apache正在重写index.php,但没有附加查询字符串

Apache正在重写index.php,但没有附加查询字符串,apache,.htaccess,localhost,Apache,.htaccess,Localhost,我正试图让.htaccess在我的本地主机上工作(我有MacOSX10.5)。我通过以下文章启用了.htaccess,如。但是,尽管现在正在进行重写,但它并没有正常工作。例如,重写规则之一是: RewriteRule ^(home|faq|about|contact)$ index.php?section=$1 [QSA,NC] 所以当我输入http://localhost/~MyUsername/MyWebsite/home,应该显示我http://localhost/~MyUsername

我正试图让.htaccess在我的本地主机上工作(我有MacOSX10.5)。我通过以下文章启用了.htaccess,如。但是,尽管现在正在进行重写,但它并没有正常工作。例如,重写规则之一是:

RewriteRule ^(home|faq|about|contact)$ index.php?section=$1 [QSA,NC]
所以当我输入
http://localhost/~MyUsername/MyWebsite/home
,应该显示我
http://localhost/~MyUsername/Mywebsite/index.php?section=home
…但是出现了404错误,错误消息是“在此服务器上找不到请求的URL/Users/MyUsername/Sites/Mywebsite/index.php。”


我的猜测是,我的Apache配置中存在错误(重写规则在我的在线主机中运行良好),但如何解决它超出了我的知识范围。有什么想法吗?提前感谢。

请尝试以下规则:

RewriteRule ^/(.*)/(home|faq|about|contact)$ /$1/index.php?section=$2 [QSA,NC]

您可以在这里测试您的重写规则-

是否存在
/Users/MyUsername/Sites/MyWebsite/index.php
我忘了包含“RewriteBase/”命令。现在,我这样做了,404错误消息显示:“在该服务器上找不到请求的URL/index.php。”这不能被视为一个答案,而是安装或类似的软件包(或者只是正确配置您现在拥有的)。您现在面临的URL重写问题可能与您使用的路径类型有关。理想情况下,您只需键入
http://localhost/
(或非常类似)就是这样(没有
/~MyUsername/MyWebsite/
部分)。这使得URL重写变得更加困难(特别是当涉及用户的主文件夹时)。简言之,Apache可能没有足够的访问权限来访问主文件夹中的网站文件。尝试将网站移动到
/Users/
文件夹之外。