已启用Mod重写但在Apache中无法正常工作

时间:2013-10-29 12:13:46

标签: apache mod-rewrite virtualhost

我目前正在使用运行Mavericks的iMac进行开发。我使用内置版本的Apache,并在我第一次使用机器时使用自制程序安装MySQL。最近我遇到了一个问题,我的一个虚拟主机没有按预期工作,我最终使用Virtual Host X的restore命令来清除我的虚拟主机并重新开始。

我设法让我的vhost再次工作,但从那时起就注意到mod_rewrite虽然已启用但无效。如果我转到http://mywebsite.local/events,我会收到错误消息 “未找到 - 在此服务器上找不到请求的网址/事件。”,但如果我转到http://mywebsite.local/index.php/events,则可以正常查看该网页。

我认为使用Virtual Host X进行恢复可能已在我的Apache设置中损坏,因为restore命令确实有此警告:

“备份文件包含所有VirtualHostX数据以及Web配置文件的副本。还原备份将使用先前备份的文件替换这些文件和当前数据(虚拟主机,域详细信息等)数据“。

以下是我遇到问题的其中一个网站的vhost设置的副本:

Options FollowSymLinks
AllowOverride None
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule !\.(js|ico|gif|jpg|png|css|ttf|woff)$ /index.php

我第一次在Mountain Lion上遇到这个问题,但后来升级到小牛队,希望能解决这个问题,但无济于事。

任何帮助都会很棒。如果问题不能轻易解决,那么任何有关如何完全摆脱Apache机器并再次启动的建议的人也会有所帮助。

2 个答案:

答案 0 :(得分:0)

这应该在Debian Apache2中使用:

Options FollowSymLinks
AllowOverride None
RewriteEngine on
RewriteCond %{DOCUMENT_ROOT}%{REQUEST_FILENAME} !-f
RewriteCond %{DOCUMENT_ROOT}%{REQUEST_FILENAME} !-d
RewriteRule !\.(js|ico|gif|jpg|png|css|ttf|woff)$ /index.php [L]

答案 1 :(得分:0)

感谢您的回答,但不幸的是它没有成功。但是我很高兴地说这个问题现在已经整理好了。我粘贴在你的代码中,它阻止我的虚拟主机完全运行。我需要将原始代码粘贴回来,然后将其复制并粘贴回Stack Overflow中的这篇文章并重新启动Apache。我点击了一些链接,重写现在正在运行。

我猜测有一些隐藏的字符导致了我将代码粘贴回来时根除的问题。

我希望这对某人有帮助,因为它非常烦人。