【问题标题】:Mod rewrite enabled but not working in Apache启用了 Mod 重写但在 Apache 中不起作用
【发布时间】:2013-11-08 14:11:37
【问题描述】:

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

我设法让我的虚拟主机再次工作,但从那以后我注意到 mod_rewrite 虽然已启用,但无法正常工作。如果我去http://mywebsite.local/events 我会收到一个错误 “未找到 - 在此服务器上未找到请求的 URL /events。” 但如果我转到 http://mywebsite.local/index.php/events 则可以查看该页面。

我认为使用虚拟主机 X 进行恢复可能损坏了我的 Apache 设置中的某些内容,因为恢复命令确实有以下警告:

“备份文件包含您的所有 VirtualHostX 数据以及您的 Web 配置文件的副本。恢复备份会将这些文件和您当前的数据(虚拟主机、域详细信息等)替换为以前备份的数据。”

这是我遇到问题的网站之一的虚拟主机设置的副本:

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 遇到这个问题,但后来升级到 Mavericks 希望它能解决这个问题,但无济于事。

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

【问题讨论】:

    标签: apache mod-rewrite virtualhost


    【解决方案1】:

    感谢您的回答,但很遗憾没有成功。不过我很高兴地说,这个问题现在已经解决了。我粘贴了您的代码,它完全停止了我的虚拟主机运行。我需要将我的原始代码粘贴回去,所以从 Stack Overflow 中的这篇文章中复制并粘贴回来,然后重新启动 Apache。我点击了几个链接,现在正在重写。

    我猜是有一些隐藏的字符导致了问题,当我将代码粘贴回去时,这些字符被根除。

    我希望这对某人有帮助,因为这很烦人。

    【讨论】:

    • “它完全停止了我的虚拟主机运行。”,很奇怪。
    【解决方案2】:

    这应该在 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]
    

    【讨论】:

      猜你喜欢
      • 2017-08-31
      • 2015-07-26
      • 2015-08-22
      • 1970-01-01
      • 1970-01-01
      • 2015-10-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多