.htaccess - 404错误

时间:2012-04-22 12:20:57

标签: .htaccess

我希望.htaccess为任何不符合以下网址格式标准的网址返回错误404。我怎么能在.htaccess中做到这一点?

在php脚本中使用此代码生成上面的url

$adscatcanonurl = "$script_url" . "/" . "{$vbasedir}$xcityid-$xcitynamealt/posts/$xcatid-$catname_inurl/". ("$xsubcatid"?"$xsubcatid-". RemoveBadURLChars($xsubcatname) :"");

示例链接

http://www.domain.com/17-Netherlands/posts/8-Real-Estate/

假设脚本生成这样的链接 http://www.domain.com/17-Netherlands/posts/8/

因为它与上面的url模式不匹配,所以此类网址应该返回404页面而不是响应。

2 个答案:

答案 0 :(得分:1)

您不需要强制.htaccess返回404,如果没有匹配,它将自行执行此操作。所以你可以使用如下规则:

RewriteEngine On
# Don't match real files
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f

RewriteRule ^(\d+)-([a-zA-Z-]+)/posts/(\d+)-([a-zA-Z-]+)$ your_php_script.php?xcityid=$1&xcitynamealt=$2&xcatid=$3&xcatname_inurl=$4 [L,QSA]

任何不适用于实际文件(css,js等)且与上述规则不匹配的请求都不会与任何规则匹配,因此应返回404。 / p>

请注意,在规则中,我将4个组件映射到PHP中将作为$_GET['xcityid']等读取的内容。

答案 1 :(得分:0)

为什么不使用:ErrorDocument 404 /404page.html

http://www.yourhtmlsource.com/sitemanagement/custom404error.html