我有一个自定义 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/