gpt4 book ai didi

php - .htaccess 内部服务器错误 : ErrorDocument not working (RewriteEngine on)

转载 作者:搜寻专家 更新时间:2023-10-31 21:09:09 27 4
gpt4 key购买 nike

每当我的 ErrorDocument 上有 RewriteEngine - 部分不工作。这是我当前的 .htacces 文件:

ErrorDocument 404 404.php

Options -MultiViews
RewriteEngine On
RewriteBase /

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /$1.php [QSA,L]

因此,当我在浏览器中打开一个不存在的文件时,我会收到 500 内部服务器错误,并且我不会被重定向到 404.php - 文件。

请帮助我;)

最佳答案

这是因为您盲目地将 .php 重写到 URI 的末尾。让我们来看看当您转到 404 URL 时会发生什么:

  • 你请求:http://example.com/blahblah
  • URI 不是文件(通过 !-f)
  • URI 不是目录(通过 !-d)
  • URI 匹配 (.*)
  • URI 被重写为包含 .php
  • URI 现在是 /blahblah.php
  • URI 不是文件(通过 !-f)
  • URI 不是目录(通过 !-d)
  • URI 匹配 (.*)
  • URI 被重写为包含 .php
  • URI 现在是 /blahblah.php.php
  • URI 不是文件(通过 !-f)
  • URI 不是目录(通过 !-d)
  • URI 匹配 (.*)
  • URI 被重写为包含 .php
  • URI 现在是 /blahblah.php.php.php

等等

您需要确保要重写的内容确实存在,否则会导致循环:

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{DOCUMENT_ROOT}%{REQUEST_URI}.php -f
RewriteRule ^(.*)$ /$1.php [QSA,L]

关于php - .htaccess 内部服务器错误 : ErrorDocument not working (RewriteEngine on),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25353405/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com