1

多年后,我发现了一个重复 URL 中的错误,尽管我认为应该强制执行 htaccess 规则,但我试图修复(作者已不在)。

问题:我在 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

另一个例子是菜单页面:

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

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

我认为“index.php”版本应该被隐藏或重定向到友好的 URL 版本,同时显示 200/OK Index.php 本身被重定向 OK:www.wrock.pl/index.php

目标:只能显示友好的 URl 版本(重定向 index.php 版本)。谷歌停止将它们编入索引,因此这可能是一个问题(众多原因之一)。

这是我的 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]

这当然行不通。

非常感谢您的任何建议。

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 回答