繁体   English   中英

PHP 404响应和重定向

[英]PHP 404 response and redirect

我知道我可以使用.htaccess来简单地设置404错误页面。

据我了解,如果找不到页面,则会将错误发送回浏览器,并显示404页面。 用户可能会也可能不会意识到此“错误”。

我想做的是允许用户键入page1.php,page2.php,page3.php等,然后转到分别打印page1,page2,page3等的页面。

原因是page1,page2,page3等的逻辑非常相似。我认为将用户发送到同一页面可能会更容易,该页面随后将使用PHP服务器变量来计算要执行的操作:确定是否是否有效页,然后抛出404错误或打印正确的消息。

这可能吗? 还是只是一个愚蠢的想法?

我希望该网址不受影响,并在用户键入时保持不变。

谢谢。

这绝对不是愚蠢的想法。

提供内容的实例是Web服务器,如果找不到内容,则提供错误页面。 如果要使用PHP处理该逻辑,则可以告诉Web服务器将所有请求传递到同一 PHP文件。 然后,您可以使用$_SERVER变量来确定用户正在请求什么并提供内容,并发送正确的状态代码(例如404 )。

在Apache中,如果您使用的是2.2.16版或更高版本,则可以定义一个备用资源 这会将对不存在文件的请求重定向到指定文件。

<Directory /var/www/my_blog>
  FallbackResource index.php
</Directory>

在较早的Apache版本中,可以使用mod_rewrite重定向请求:

<Directory /var/www/my_blog>
  RewriteBase /my_blog

  RewriteCond /var/www/my_blog/%{REQUEST_FILENAME} !-f
  RewriteCond /var/www/my_blog/%{REQUEST_FILENAME} !-d
  RewriteRule ^ index.php [PT]
</Directory>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM