如何为包含省略号的目录编写.htaccess重定向

如何为包含省略号的目录编写.htaccess重定向,.htaccess,mod-rewrite,redirect,.htaccess,Mod Rewrite,Redirect,有些人告诉我,我是如何在谷歌索引了一个无效的目录的,由于一些动态的相对链接,我现在索引了2500个“缺失”页面。我正在尝试使用.htaccess 301重定向来更正此问题,但似乎无法使其正常工作。我需要将www.domain.com/shop/pc/../pc/filename.asp重定向到www.domain.com/shop/pc/filename.asp 我写的不想工作的规则是RewriteRule^shop/pc/\.\.\../pc/(.*)$/shop/pc/$1[R=301,L]

有些人告诉我,我是如何在谷歌索引了一个无效的目录的,由于一些动态的相对链接,我现在索引了2500个“缺失”页面。我正在尝试使用.htaccess 301重定向来更正此问题,但似乎无法使其正常工作。我需要将
www.domain.com/shop/pc/../pc/filename.asp
重定向到
www.domain.com/shop/pc/filename.asp

我写的不想工作的规则是
RewriteRule^shop/pc/\.\.\../pc/(.*)$/shop/pc/$1[R=301,L]

有什么想法吗?

mod_-rewite使用的是Unicode字符(我还包括了两个点的前导,因为我认为这更可能潜入URL而不是省略号):


注意:如果浏览器正在百分比转义省略号,您可能需要[B]标志()。

您确定它是3个ASCII句点(
)还是unicode省略号(
)?删除了我的上一条评论。我想这已经解决了问题,但我跳了。我相信你是对的,这是unicode省略号,不是3个句号。我该如何写重定向?我试过:
RewriteRule^pc/../shop/pc/(.*)$/shop/pc/$1[R=301,L]
RewriteRule^pc/&hellip/shop/pc/(.*)$/shop/pc/$1[R=301,L]
它们似乎不起作用。还是不走运。我试过带B旗和不带B旗
RewriteRule^shop/pc/\xe2\x80\xa6/pc/(.*)$/shop/pc/$1[R=301,L]
RewriteRule^shop/pc/\xe2\x80\xa6/pc/(.*)$/shop/pc/$1[R=301,B,L]
我知道上面的修改方法是有效的,这意味着我们没有针对正确的字符。您的错误日志中有什么?它会准确地告诉你从外面进来的是什么<代码>2014-01-21 00:39:38 208.106.254.53 GET/shop/pc/../pc/reproruber-Combo-Kit-Quick-Dispense-Cartridge-System-Kit-10p4672.htm--157.55.32.221 HTTP/1.1 Mozilla/5.0+(兼容;+bingbot/2.0++http://www.bing.com/bingbot.htm)-www.flexbar.com 200 0 48979 354 718。这里似乎有三个周期。然而,我试着从3节课开始(见第一篇文章),但也没有成功。还有什么我遗漏的吗?那肯定是三个句号,而不是UTF-8字符,所以你的第一个
\.\.\.
配方应该很好。接下来的问题是让mod_rewrite匹配,如果您有任何别名或位置,以及.htaccess文件的位置,这可能会很棘手。您可以启用mod_重写日志记录吗?看见
# U+2026 … \xe2\x80\xa6 HORIZONTAL ELLIPSIS
RewriteRule ^shop/pc/\xe2\x80\xa6/pc/(.*)$ /shop/pc/$1 [R=301,L]

# U+2025 ‥ \xe2\x80\xa5 TWO DOT LEADER
RewriteRule ^shop/pc/\xe2\x80\xa5/pc/(.*)$ /shop/pc/$1 [R=301,L]