【问题标题】:WAMP and XAMPP gives Internal Server ErrorWAMP 和 XAMPP 给出内部服务器错误
【发布时间】:2017-08-27 20:44:25
【问题描述】:

这是我的.htaccess 代码:

RewriteEngine On    
RewriteCond %{THE_REQUEST} ^[A-Z]{3,}\s([^.]+)\.php [NC]   
RewriteRule ^ %1 [R=301,L,NC] 
RewriteCond %{REQUEST_FILENAME} !-f   
RewriteRule ^([^\.]+)$ $1.php [NC,L]

<IfModule mod_rewrite.c>    
RewriteRule ^user/([0-9a-ZA-Z]+) user.php?page=$1 [NC,L]   
</IfModule>

我想从所有页面中删除 .php 扩展名,所以我使用上面的 4 行,我还想让我的 URL 更干净,所以我应用最后一行。 但当我应用最后一行时,XAMPP 和 WAMP 都开始显示内部服务器错误。我想知道是什么原因造成的。

如果我的代码有误,请建议我如何使 URL 更干净,如下所示:

http://localhost/project/user?user=ROYAL

我想成功:

http://localhost/project/user/ROYAL

【问题讨论】:

  • 您好,请删除最后一段或编辑它,因为这似乎是与 URL 重写问题无关的第二个问题。
  • @tima 现在,我删除了最后一段,现在你能告诉我一些事情吗?
  • 我正在审核您的帖子。我不是 URL 重写方面的专家,但至少现在它不会因为太宽泛而被关闭。
  • 您的 .htaccess 已配置为删除 php 扩展,但为了检查内部服务器错误,我们需要更多信息您有任何服务器日志吗?

标签: php mysql apache .htaccess mod-rewrite


【解决方案1】:

我从我的兄弟那里得到了答案: 我只需要改变:

RewriteRule ^user/([0-9a-ZA-Z]+) user.php?page=$1 [NC,L] 

进入:

RewriteRule ^user/([\w+\s-]+)$ user?page=$1

这只是一个Apache版本问题,添加反斜杠以避免转义 这个问题被识别为RewriteRule: cannot compile regular expression

【讨论】:

    猜你喜欢
    • 2012-02-04
    • 2012-09-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-02-01
    • 1970-01-01
    • 2018-08-29
    • 2012-08-13
    相关资源
    最近更新 更多