php - 如何在 .htaccess 中编写此 404 规则

标签 php apache .htaccess url http-status-code-404

我有一个自定义 CMS。除了一件事,它工作得很好。我想知道如何最好地实现 404 功能。该站点应该只有以下 url 类型

index.php?upn=something

gallery.php?groupId=2

在 index.php 或 gallery.php 之后附加到 url 的任何目录都应该抛出 404。如果在指定 upn 时在数据库中找不到内容,我也想抛出 404。我意识到我可以在 php 中抛出 header 。但我说我会尝试从整体上更深入地了解这个问题。因此,如果您有任何信息或指示,我将不胜感激。

最佳答案

我喜欢通过我的 PHP 代码以编程方式执行此操作。您可以编写一些简单的路由组件,尝试找到您想要的内容。今天你只是路由到操作(index.php?upn=gallery.php?groupId=),但在未来的某一天你可能会添加新的,并且你应该更改您的 .htaccess,这更困难。如果您在应用层中完成所有操作,您可以将其更改得更简单。

将此代码粘贴到项目根目录下的 .htaccess 文件中,并将每个请求路由到 router.php。收到请求后,您可以决定要执行的操作。

<IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule ^(.*)$ router.php?url=$1 [QSA,L]
</IfModule>

希望对您有所帮助。

关于php - 如何在 .htaccess 中编写此 404 规则,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7616856/

相关文章:

angular - 将 angular-universal 部署到 apache 服务器(Angular 9)

php - PHP/Apache 中的 Inkscape 不会将字体呈现为 PNG

Laravel:如何强制使用 HTTPS?

HTTPS 上的 Wordpress 前端,HTTP 上的后端

php - 使用 .htaccess 或 PHP 阻止用户 IP?

PHP cURL 文件上传

javascript - 使用js验证输入

php - Woocommerce:以编程方式更新订单状态

php - "%"MySQL 问题

php - 启用 IPTables 时 LAN 上的 MySQL 不工作