我有自定义CMS。除了一件事,它的效果非常好。我想知道如何最好地实现404功能。该网站应该只有以下网址类型
index.php?upn=something
或
gallery.php?groupId=2
在index.php或gallery.php之后附加到url的任何目录都应抛出404。如果在指定upn时在数据库中找不到内容,我还想抛出404。我意识到我可以在php中抛出标题。但我说我会尝试更全面地了解这个问题。所以如果你有任何信息或指示我会很感激他们。
答案 0 :(得分:1)
你必须在php代码中返回404,但你可以在htaccess中设置404处理程序:
ErrorDocument 404 /errors/notfound.html
答案 1 :(得分:1)
我喜欢用我的PHP代码以编程方式执行此操作。你可以编写一些简单的Route Component,试图找到你想要的东西。今天你只是路由到行动(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>
希望它有所帮助。