1

最近、ウェブマスター ツールで、いくつかのランダムなサイトが私のサイトにリンクしているのを見ました。実際、これは大きな問題ではありません。ファイルが原因で、リンクされているページが実際のページではない場合に問題が発生し.htaccessます。

これは.htaccess私が実行しているコードです:

#Options +FollowSymLinks
RewriteEngine on
RewriteRule ^([^/\.]+)/?$ index.php?id=$1 [L]
RewriteRule ^([0-9]+)/(.*)$ index.php?id=$1 [L]

したがって、実際の URL は次のようになります。

mysite.com/folder/999/TITLE-OR-NAME

$1しかし、数値 ID である最初のフォルダーのみをチェックするため、この.htaccessファイルにより、ハッカーは次のようなランダムな URL で私のサイトにリンクすることができます。

mysite.com/folder/999/TITLE-OR-NAME1
mysite.com/folder/999/TITLE-OR-NAME2
mysite.com/folder/999/TITLE-OR-NAME3
mysite.com/folder/999/TITLE-OR-NAME4
mysite.com/folder/999/TITLE-OR-NAME5

最悪の部分は、Google がコンテンツを複製していると私に言ったときです!!!

実際、私はコンテンツを.htaccess複製しているのではなく、私のために複製しています。そして、はい、私は悪い初心者プログラマーですが、解決策を見つけるのに苦労しているので、これについてあなたの助けに本当に感謝していますが、うまくいきません.

4

1 に答える 1

0

これを少し調整する必要があるかもしれませんが、近づける必要があります。

RewriteRule ^([0-9]+)/([A-Za-z]*)([0-9]*)$ [R=404,L,NC]
RewriteRule ^([0-9]+)/(.*)$ index.php?id=$1 [L]

R = 404は、このケースに該当し、それ以上書き換えコマンドを実行しない場合は404をスローすると言っています(L)。NCは、大文字と小文字を区別しないことを意味します。

固定URL用に編集: これは各固定ページに移動し、リストされていないものはすべて404に移動します。つまり、エンドケースに到達するまで、foo、次にbarなどをチェックします。無効なURLで、404になります。

RewriteRule ^([0-9]+)/(FOO){1}$ index.php?id=$2 [L]
RewriteRule ^([0-9]+)/(BAR){1}$ index.php?id=$2 [L]
...
RewriteRule ^([0-9]+)/(.*)$ [R=404,L,NC]
于 2012-11-29T23:29:48.670 に答える