あなたの言っていることが理解できれば、( を使用してmod_rewrite
) 書き換えられた URL のリストがあると言っています。それらのいくつかは存在し、いくつかは存在しません。存在しないものを新しいページの場所にリダイレクトしたいですか?
簡単に言えば、 内でそれを行うことはできませんhtaccess
。を使用している場合mod_rewrite
、書き換えられたページ名がコントローラ ファイルに渡され、書き換えられた URL が表示されるページ/コンテンツに変換されます。
私はあなたが PHP を使用していると仮定しているだけです。そうであれば、ほとんどの PHP フレームワーク (CakePHP、Drupal、LithiumPHP など) がこの問題を処理し、存在しないファイルのカスタム リダイレクトを処理できます。カスタム アプリケーションを作成している場合は、.htaccess
ファイルではなく PHP Web サイト内でリダイレクトを処理する必要があります。
これの非常に簡単な例は次のとおりです。
<?php
function getTag($url) {
if (preg_match('|/tag/([0-9a-zA-Z]*)/|', $url, $match)) {
return $match[1];
}
return '';
}
function validateUrl($url) {
if (preg_match('|/tag/([0-9a-zA-Z]*)/page/([0-9]*)/|', $url, $match)) {
$tag = $match[1];
$page = $match[2];
$isValid = // your code that checks if it's a URL/page that exists
return $isValid;
}
return false;
}
if (!validateUrl($_SERVER['REQUEST_URI'])) {
$tag = getTag($_SERVER['REQUEST_URI']);
header ('HTTP/1.1 301 Moved Permanently');
header('Location /tag/' . $tag . '/');
die();
}
?>