【问题标题】:Server Errors with .htaccess mod_rewrite.htaccess mod_rewrite 的服务器错误
【发布时间】:2011-09-23 18:34:36
【问题描述】:

在我的本地主机上,没有问题,但是当我将 .htaccess 文件上传到我的 1and1 托管帐户时,我遇到了障碍(内部 500 服务器错误)

更新:我发现了有问题的代码,只是不知道为什么它被破坏或如何修复它(我注释掉了断线)

 #RewriteRule ^([a-zA-Z_\-/]+)(\/?)$ index.php?p=$1 [R,NC,QSA,L]
  RewriteRule ^([a-zA-Z_/]+)(\/?)$ index.php?p=$1 [R,NC,QSA,L]

.htaccess 文件内容:

AddType x-mapp-php5 .php   
RewriteEngine on
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !\.(jpg|jpeg|gif|png|css|js|pl|txt)$
RewriteRule ^([a-zA-Z_\-/]+)(\/?)$ /index.php?p=$1 [L]

注释掉最后一行 (RewriteRule...) 会阻止错误发生,但我显然需要它来运行。

该文件在我的本地机器上运行良好。 好吧,它有点不同,所以我也会包含该代码 (区别:标志、'/NEP' 和第一行)

RewriteEngine on
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !\.(jpg|jpeg|gif|png|css|js|pl|txt)$
RewriteRule ^([a-zA-Z_\-/]+)(\/?)$ /NEP2/index.php?p=$1 [NC,QSA,L]

我尝试执行的重写的几个示例:

  • dev.mydomain.com/services/ => dev.mydomain.com/index.php?p=services

  • dev.mydomain.com/quality/control => dev.mydomain.com/index.php?p=quality/control

您能提供的任何帮助/建议将不胜感激。我真的需要在一天结束之前完成这项工作。

【问题讨论】:

  • 你能检查一下 apache 错误日志吗?那会很有帮助。
  • hmmm...我可以使用便宜的 1and1 托管帐户访问那些吗?我现在就试试。
  • “由于技术原因,我们不提供对共享主机包上的 Apache 错误日志的访问权限,因此您可以创建自己的错误日志来调试 PHP 脚本。” - 创建我自己的错误日志会有帮助吗?
  • @Zach 不。它们不会包含 Apache 错误消息。我想这取决于试验+错误
  • 您可以使用答案回答您自己的问题 :)

标签: php .htaccess mod-rewrite internal-server-error


【解决方案1】:

字符集中的连字符/破折号用作范围运算符(想想 0-9 或 a-z)。将它放在中间或结尾可能会有问题。

将其移至字符集的开头可避免此问题,并且意味着您不必使用 \ 转义它:

[-a-zA-Z_/]

【讨论】:

    猜你喜欢
    • 2018-05-10
    • 2011-07-09
    • 1970-01-01
    • 2014-08-21
    • 1970-01-01
    • 2012-02-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多