繁体   English   中英

htaccess无法正常运行-重定向301

[英]Htaccess Not Working - Redirect 301

由于网址错误,我们生成了一些无效的链接,我想使用301重定向功能将其重定向,以解决Google的某些网站站长工具问题。

因此,我们有这样的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],但这似乎也不起作用。 就像重定向规则正在起作用,但它只是重定向到原始页面。

我在这里想念什么?

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

顺便说一句,让我们假设您想使规则适用于/subdomain/z//-products

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

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

我们从字面上匹配z字符和周围的斜杠。 我们先对-字符进行转义,然后再处理URL的其余部分,并可选地匹配尾随的斜杠。 如果内存可以正确使用,我们将使用“外部”样式重定向,以便机械手重新打开单独的HTTP连接,附加匹配的反向引用,并移交状态代码。

让我知道是否可行。

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

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

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM