1

以下の URL パターン基準を満たさない URL に対して .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 パターンと一致しないため、そのような URL は応答ではなく 404 ページを返す必要があります。

4

2 に答える 2

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を返す必要があります。

ルールでは、4つのコンポーネントをPHPで読み取られるものにマップしたことに注意してください$_GET['xcityid']

于 2012-04-22T12:28:35.907 に答える
0

使用しない理由: ErrorDocument 404 /404page.html

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

于 2012-07-16T04:25:28.500 に答える