3

次の問題があります。以下のリンク形式は存在しません:

photos.domain.com/web/poppic.php?n=[any number from 0 to the roof]
例:photos.domain.com/web/poppic.php?n=30

1年前に、次のように置き換えました。photos.domain.com/

何年も経った今でも、大量の 404 エラーが発生しています。永続的なリダイレクトと、検索エンジンが従わず、その古いリンクをインデックスに登録しないようにするための htaccess ディフェクティブが必要です。

私が試してみrewriterule ^web\/poppic\.php?n=30 "http\:\/\/photos\.domain\.com" [R=301,L]ましたが動作します。ただし、0 から 999999999999999999999999 までの各行を記述する必要があります rewriterule ^web\/poppic\.php?n=0 "http\:\/\/photos\.domain\.com" [R=301,L] rewriterule ^web\/poppic\.php?n=1 "http\:\/\/photos\.domain\.com" [R=301,L] rewriterule ^web\/poppic\.php?n=2 "http\:\/\/photos\.domain\.com" [R=301,L]

(またはそのようなもの)を置き換えるphp?n=[number]ために、変数でそれを行うにはどうすればよいですか?php?n=$variable

また、クローラーにページをフォロー/インデックスしないように指示しているわけでもありません。

助けていただけますか?

4

1 に答える 1

3

Apache の mod_rewrite を使用して、書き換えルール内のクエリ文字列と照合することはできません。%{QUERY_STRING}書き換え条件を使用し、変数と照合する必要があります。

RewriteCond %{QUERY_STRING} ^n=[0-9]+
RewriteRule ^web/poppic\.php$ /? [L,R=301]

元のルールがどのようになっているかわからない:

rewriterule ^web\/poppic\.php?n=30 "http\:\/\/photos\.domain\.com" [R=301,L]

これまで働いた。Apache 2.2 または 2.4 では動作しません。

于 2012-12-08T05:30:21.687 に答える