0

由于一些错误的 URL,我们生成了一些不起作用的链接,我想用 301 重定向来重定向它们,以解决谷歌的一些网站管理员工具问题。

所以,我们有这样的 URL:

http://www.site.com/subdomain/z//-products

*请注意,子域是可变的,其余的 url 是静态的。

作为旁注,这个 URL 没有意义,这就是我想重定向它的原因。它应该是这样的:

http://www.site.com/bedroom/z/12345/bedroom-furniture-products

无论如何,我们动态生成了这些错误的 URL。我们已经修复了它们,但 google 拾取了它们并继续尝试抓取它们。我想创建一个 htaccess 规则来 301 重定向它们,这个问题最终应该会消失。

这是我尝试使用 htaccess 无济于事的方法:

^(.*)/n//-products/?$ $1 [R=301,B]

我也尝试了各种排列,但它不起作用。我怀疑这是一个实体转义问题,但我的研究导致我添加了 [B],但这似乎也不起作用。这就像重定向规则正在工作,但它只是重定向到原始页面。

我在这里想念什么?

4

2 回答 2

1

/subdomain/z//-products我相信 anubhava 是正确的,因为您描述的示例 URL与您尝试应用的 RewriteRule之间存在不一致。不确定这是否是一个错字。甚至可能是您的复制/粘贴操作实际上添加了“/n”字面意思。

无论如何,让我们假设您想让规则与以下内容一起使用/subdomain/z//-products

RewriteRule ^/([^/]+)/z//\-products/?$ http://www.site.com/$1 [R=301]

请参阅此 PDF 的示例 1 幻灯片以快速了解第一部分。它比使用快得多(.*)

我们从字面上匹配z字符和周围的斜线。我们对字符进行转义-,然后执行 URL 的其余部分并可选地匹配尾部斜杠。如果记忆正确,我们使用“外部”样式重定向,以便机器人重新打开单独的 HTTP 连接,附加匹配的反向引用,并传递状态代码。

让我知道这是否有效。

于 2013-05-22T04:44:14.850 回答
0

通过启用 mod_rewrite 和 .htaccess httpd.conf,然后将此代码放在您.htaccessDOCUMENT_ROOT目录下:

Options +FollowSymLinks -MultiViews
# Turn mod_rewrite on
RewriteEngine On
RewriteBase /

RewriteRule ^subdomain/z/-products/?$ /$1 [L,R=302,NC]

确认它工作正常后,替换R=302R=301. R=301在测试你的 mod_rewrite 规则时避免使用(永久重定向)。

于 2013-05-23T23:37:49.293 回答