【问题标题】:.htaccess gives 500 error on localhost.htaccess 在本地主机上给出 500 错误
【发布时间】:2012-09-02 02:02:56
【问题描述】:

我是 MVC 框架的初学者。我正在尝试根据教程创建一个我自己的。

他们提供的

.htaccess 文件包含:

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-l
RewriteRule ^(.+)$ index.php?url=$1 [QSA, L]

我收到 500 服务器错误:服务器遇到内部错误,无法完成您的请求。服务器过载或 CGI 脚本中存在错误。

我检查了 httpd.conf 以检查 mode_rewrite 是否没有被评论。任何人都可以帮助我吗?我在 Ubuntu 12.04 上使用 LAMPP

【问题讨论】:

  • 检查您的 Apache 错误日志。可能在/var/log/apache/
  • 刚刚拍摄... Apache 模块 mod_rewrite 在您的服务器上被禁用
  • mod_rewrite 没有被禁用它在 httpd.conf 前面没有#,那么我该如何启用
  • 如果它是 enbaled 去其他地方看看。正如 ascii-time 所说,检查你的日志
  • 我使用 ubuntu 所以 cd /var/log/apache 没有找到文件

标签: php apache .htaccess


【解决方案1】:
RewriteRule ^(.+)$ index.php?url=$1 [QSA, L]

改为:

RewriteRule ^(.+)$ index.php?url=$1 [QSA,L]

注意,“[QSA,L]”与 [QSA,L]

重复您的错误,删除空间,工作)。我正在使用 WAMP。

【讨论】:

  • 谢谢你现在没有得到错误但由于某种原因我的引导程序没有看到 $_GET['url'] 它说未定义的索引
  • 没关系,我在 php 文件中有错误。它是控制器的Index.php,在我的引导程序中它正在寻找小写的index.php,所以我只是做了它,以便它使首字母大写,现在它可以工作了。谢谢
【解决方案2】:

尝试 cjriii 的答案,如果这不起作用,请检查 httpd.conf 文件中的 AllowOverride 变量,并确保它显示为 All 而不是 None。当我第一次开始使用 mod_rewrite 时,这也让我感到困惑。

【讨论】:

    猜你喜欢
    • 2014-04-02
    • 2014-01-25
    • 1970-01-01
    • 2016-04-15
    • 2014-09-25
    • 2014-04-23
    • 1970-01-01
    • 2019-09-20
    • 1970-01-01
    相关资源
    最近更新 更多