1

数年後、私はそれを強制すべきだと思った htaccess ルールにもかかわらず、私が修正しようとしている複製 URL のバグを発見しました (作成者はなくなりました)。

問題: 2 つの URL の下に同じコンテンツがあります。例:

http://www.wrock.pl/news-23069/Depeche_Mode_Party_w_klubie_Liverpool_/

www.wrock.pl/index.php?s=news&d=23069&nazwa=Depeche_Mode_Party_w_klubie_Liverpool_

またはそれより短い www.wrock.pl/index.php?s=news&d=23069

もう 1 つの例は、メニュー ページです。

http://www.wrock.pl/koncerty/

www.wrock.pl/index.php?s=koncerty

「index.php」バージョンは非表示にするか、わかりやすい URL バージョンにリダイレクトする必要があると考えましたが、どちらも 200/OK で表示されます Index.php 自体は正常にリダイレクトされます: www.wrock.pl/index.php

目的: フレンドリな URl バージョンのみを表示できるようにする (index.php バージョンをリダイレクトする)。Google はそれらのインデックス作成を停止したため、問題である可能性があります (多くの理由の 1 つ)。

提示された例を担当する私のhtaccessは次のとおりです。

RewriteEngine On

RewriteCond %{HTTP_HOST} ^wrock.pl(.*) [NC]
RewriteRule ^(.*)$ http://www.wrock.pl/$1 [R=301,L]

# REDIRECT index.php to /
RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /([^/]+/)*index\.php\ HTTP/
RewriteRule ^(([^/]+/)*)index\.php$ http://www.wrock.pl/$1 [R=301,L]

#NEWS
RewriteRule ^news-([0-9]+)/([^-]+)/$ index.php?s=news&d=$1&nazwa=$2 [L,NC]
RewriteRule ^news/([0-9]+)/$ index.php?s=news&strona=$1 [L,NC]

#KONCERTY
RewriteRule ^koncerty/$ index.php?s=koncerty [L,NC]

現在のリダイレクトを変更する必要があるのか​​、それとも次のように入力する必要があるのか​​ わかりません。

#RewriteRule ^index.php?s=news&d=([0-9]+)&nazwa=([^-]+)$ http://www.wrock.pl/news-$1/$2/ [L,NC]

もちろん機能しません。

Thank You very much for any suggestions.

4

1 に答える 1

0

アイテムの上#NEWSに、次のルールを追加する必要があります。

RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /index\.php\?s=news&d=([0-9]+)&nazwa=([^-&\ ]+)($|\ )
RewriteRule ^ /news-%1/%2/ [L,R=301]

RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /index\.php\?s=news&strona=([0-9]+)($|\ )
RewriteRule ^ /news/%1/ [L,R=301]

RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /index\.php\?s=koncerty
RewriteRule ^ /koncerty/ [L,R=301]

そして、「より短いwww.wrock.pl/index.php?s=news&d=23069を処理するために:

RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /index\.php\?s=news&d=([0-9]+)($|\ )
RewriteRule ^ /news-%1/ [L,R=301]

RewriteRule ^news-([0-9]+)/$ index.php?s=news&d=$1 [L]
于 2013-07-24T09:08:56.980 に答える