在重写了我所有的url规则之后,传递的所有内容都被视为重写规则--这将导致永远不会有404页!我如何才能为没有找到的网页提供404页,例如example.com/book是重写的url,这很好。然而,example.com/dfersfn不是,但这也是服务,404被发送。以下是我的htaccess的内容:
RewriteEngine on
RewriteRule \.(css|jpe?g|gif|png|js|ico|svg)$ - [L]
RewriteCond %{REQUEST_URI} "/f1/" [OR]
RewriteCond %{REQUEST_URI} "/f2/" [OR]
RewriteCond %{REQUEST_URI} "/f3/"
RewriteRule (.*) $1 [L]
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} ^/(.*?)/?$
RewriteCond %{DOCUMENT_ROOT}/%1.php -f
RewriteRule ^(.*?)/?$ /$1.php [L]
RewriteRule ^([A-Za-z0-9-]+)/?$ book.php?slug=$1 [NC,L]
RewriteRule ^([A-Za-z0-9-]+)/(.*)/? read.php?slug=$1&cslug=$2 [NC,L]发布于 2013-11-16 16:51:24
您需要在book.php和read.php脚本中这样做。当您检查数据库中的“段塞”和"cslug“或其他任何东西时,如果它们不存在,则让脚本本身通过以下方式返回404:
header('HTTP/1.0 404 Not Found');这个问题中有更多的信息:Why won't my PHP app send a 404 error?
https://stackoverflow.com/questions/20020626
复制相似问题