【问题标题】:Error 500 on nonexistent directory不存在的目录上的错误 500
【发布时间】:2016-10-18 14:06:53
【问题描述】:

我的.htaccess 配置了以下代码,以便通过prohackr112.tk/page1prohackr112.tk/page2 访问prohackr112.tk/page1.htmlprohackr112.tk/page2.php

RewriteEngine on
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}\.php -f
RewriteRule ^(.*)$ $1.php
RewriteCond %{REQUEST_FILENAME}\.html -f
RewriteRule ^(.*)$ $1.html

但是当我尝试访问一个真正是 html 文件的目录(例如 prohackr112.tk/page1/indir)时,我收到 500 内部服务器错误。为什么这不仅仅是 404 错误?如果这是我的.htaccess 的问题,我该如何配置它以使其 404 错误?

编辑: 当我尝试转到prohackr112.tk/page.html/indir 时,它只会给我page.html

【问题讨论】:

  • 500 错误的第一站:服务器的错误日志。在您确切知道错误是什么之前,不要随便乱扯试图猜测问题所在。可能是 .htaccess 语法错误,可能是无限重定向循环,可能是今天早上有人在你的 Apache 的玉米片中撒尿,而今天的网络很糟糕。
  • 大约一周前我第一次遇到这个错误,它仍然给我同样的东西here。而且我不知道如何找到错误日志;我正在使用 000webhost...

标签: php html apache .htaccess


【解决方案1】:

你可以试试这样的规则:

RewriteEngine on
RewriteBase /

RewriteCond %{REQUEST_FILENAME} -d [OR]
RewriteCond %{REQUEST_FILENAME} -f
RewriteRule ^ - [L]

RewriteCond %{REQUEST_FILENAME}\.php -f
RewriteRule ^(.+?)/?$ $1.php [L]

RewriteCond %{REQUEST_FILENAME}\.html -f
RewriteRule ^(.+?)/?$ $1.html [L]

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-06-03
    • 2017-08-30
    • 1970-01-01
    • 2013-11-09
    相关资源
    最近更新 更多