0

PHPで開発されたWebサイトがあります。私は最近、正常に動作する URL の書き換えを行いました。ただし、パラメーターを含むページにもアクセスできることがわかりました。たとえば。

この URL を変換しました domainname.com/index.php?page=product&pid=5&proTitle=Samsung Galaxy

書き換え後は、この domainname.com/products/5/Samsung-Galaxy.html のようになります

すべてがうまく機能します。ただし、私のサイトには、古いパラメーターを使用して引き続きアクセスできます。誰かが古い URL を入力すると、理想的には新しいページに自動的にリダイレクトされる必要があるかどうか、そうでない場合はインデックス ページが必要です。Google と MSN は、パラメータを使用してこれらのページにアクセスしないでください。どんな助けでも大歓迎です。


ご意見ありがとうございます。これが私の質問の詳細です。

この URL を変換しました domainname.com/index.php?page=product&pid=5&proTitle=Samsung Galaxy

書き換え後は、この domainname.com/products/5/Samsung-Galaxy.html のようになります

コードは次のようになります。

RewriteRule ^products/(.*)/(.*).html$ index.php?page=product&pid=$1&proTitle=$2 [nc]

書き換え正常に動作します。ただし、古い URL、つまり domainname.com/index.php?page=product&pid=5&proTitle=Samsung Galaxy にアクセスしようとすると、ページは引き続きアクセス可能であり、さらに Google やその他の検索エンジンによってクロールされます。誰かがこの URL にアクセスしようとすると、Page Not Found に誘導する必要があり、これもクローラーによってスニッフィングされないようにする必要があります。

お時間を割いていただき、誠にありがとうございました。貴重なご返信をすぐにいただけることを願っています。

4

1 に答える 1

0

見苦しいURL に対してリクエストが行われた場合に、見栄えの良い URL にブラウザーをリダイレクトする別のルールが必要です。例えば:

# need to replace spaces with "-"
RewriteRule ^(.*)\ (.*)$ /$1-$2 [L,R=301]

RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /index\.php\?page=([^&\ ]+)&pid=([^&\ ]+)&proTitle=([^&\ ]+)
RewriteRule ^ /%1/%2/%3 [L,R=301]
于 2013-09-08T15:20:40.083 に答える