htaccess - 如何从网址剪切一些文字

时间:2014-06-21 09:09:02

标签: regex apache .htaccess mod-rewrite

我有关于htaccess的简单问题,但我无法解决。我的网站在谷歌搜索的部分链接有一个网址片段,我不知道这个片段是如何出现的?这是一个考试:

google seach中的

是:

http://dobry-portal.pl/part1-/Tranformers,main,film,0

真实的是 http://www.dobry-portal.pl/Tranformers,main,film,0

google seach上的adrress有时会在斜杠之间有多个部分。 http://dobry-portal.pl/part1-/part2-/part3-/Tranformers,main,film,0

如何在htaccess中简单剪切该部分以重定向到真实地址http://www.dobry-portal.pl/Tranformers,main,film,0

我试过

  

RewriteRule(。)/ part1 - /(。)$ 1 / $ 2 [L]

但这不起作用

感谢您的帮助, 亚当

2 个答案:

答案 0 :(得分:0)

试试这个:

RewriteRule ^(.*)(/part[0-9]+-)+(.*)$    $1$3 [L]

您也可以尝试RewriteCond模式:

RewriteCond %{REQUEST_URI}   ^(.*)(/part[0-9]+-)+(.*)$ [NC]
RewriteRule ^                %1%3 [L]

有关详细信息,请参阅the documentation

答案 1 :(得分:0)

这应该删除所有"假子目录"斜杠之间:

RewriteRule ^.*/([^/,]*,.*) $1 [L,R=301]
  • ^.*/贪婪地匹配直到最后一个正斜杠的路径
  • ([^/,]*,.*)捕获到第1组......
  • [^/,]*任何不是斜杠或逗号的字符,
  • ,.*然后是一个逗号和他剩下的字符串
  • $1反向引用将第1组替换为网址
  • [L,R=301]最后一条规则,永久重定向

我确定可以进行一些调整,但这应该可以让你开始。