问题与htaccess RewriteRule

时间:2014-10-27 12:15:00

标签: regex apache .htaccess mod-rewrite redirect

我正在为一个网站开发搜索引擎优化,并希望更正谷歌网站管理员工具提供的一些“未找到”网址。

所以我开始使用.htaccess文件。

 http://www.chateau-de-beaugency.com/fr/index.php?id=12

应该是

 http://www.chateau-de-beaugency.com/fr/infos-legales-12

 http://www.chateau-de-beaugency.com/fr/index.php?id=42

应该是

 http://www.chateau-de-beaugency.com/fr/acces-presse-42

 http://www.chateau-de-beaugency.com/fr/index.php?id=11

应该是

 http://www.chateau-de-beaugency.com/fr/nous-contacter-11

 http://www.chateau-de-beaugency.com/fr/index.php?id=13

应该是

 http://www.chateau-de-beaugency.com/fr/plan-du-site-13

 http://www.chateau-de-beaugency.com/fr/fr/-6/les-services-35/index.php?id=13

应该是

 http://www.chateau-de-beaugency.com/fr/plan-du-site-13

 http://www.chateau-de-beaugency.com/fr/fr/-6/les-services-35/index.php?id=12

应该是

 http://www.chateau-de-beaugency.com/fr/infos-legales-12

 http://www.chateau-de-beaugency.com/fr/chateau-de-beaugency.com/fr/

应该是

 http://www.chateau-de-beaugency.com/fr/

感谢您的帮助

1 个答案:

答案 0 :(得分:0)

您可以在DOCUMENT_ROOT/.htaccess文件中使用此代码:

RewriteEngine On
RewriteBase /

RewriteCond %{THE_REQUEST} \s/+/fr/fr/-6/les-services-35/index.php?id=12 [NC,OR]
RewriteCond %{THE_REQUEST} \s/+fr/index\.php?id=12\s [NC]
RewriteRule ^ /fr/infos-legales-12? [R=302,L]

RewriteCond %{THE_REQUEST} \s/+(fr)/index\.php?id=(42)\s [NC]
RewriteRule ^ /%1/acces-presse-%2? [R=302,L]

RewriteCond %{THE_REQUEST} \s/+(fr)/index\.php?id=(11)\s [NC]
RewriteRule ^ /%1/acces-presse-%2? [R=302,L]

RewriteCond %{THE_REQUEST} \s/+(fr)/fr/-6/les-services-35/index.php?id=13\s [NC,OR]
RewriteCond %{THE_REQUEST} \s/+(fr)/index\.php?id=13\s [NC]
RewriteRule ^ /%1/plan-du-site-13? [R=302,L]

RewriteCond %{THE_REQUEST} \s/+(fr)/chateau-de-beaugency.com/fr/\s [NC]
RewriteRule ^ /%1/? [R=302,L]

# internal forward from pretty URL to actual one
RewriteRule ^(fr)/name-([^/]+)/?$ $1/index.php?id=$2 [L,QSA,NC]