多年后我发现我尝试修复的重复网址中存在一个错误(作者已经不见了),尽管htaccess规则我认为应该强制它。
问题: 我在2 URLS下有相同的内容,例如:
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
另一个例子是菜单页面:
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]
当然不起作用。
非常感谢您的任何建议。
答案 0 :(得分: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]