重定向许多动态 URL (301)

Redirecting Many Dynamic URLs (301)

我有一个通过类别生成动态 URLs 的网站,它在两个单独的 URLs 上输出相同的信息(在这个例子中它是“buildings”和“房子”)

我想将 URL 中具有 /buildings/ 的所有 URL 重定向到具有 /houses/ 的同一个。

例如:

/buildings/united-states/arizona/tucson/

/houses/united-states/arizona/tucson/

像这样的 URL 有很多,我想使用一个代码为所有人执行此操作。

我试过了 RewriteRule ^buildings/(\d[^/]+) /houses// [R=301,L],但似乎没有用(它仍然指向/buildings/ URL。

感谢您的所有意见和指导,谢谢!

RewriteRule ^buildings/(\d[^/]+) /houses// [R=301,L]

出于某种原因,有一个 \d(shorthand 字符 class)仅匹配数字 0-9,因此这与示例 URL 不匹配。此外,[^/]+ 似乎没有必要,如果它后面可以跟任何东西的话。

请尝试以下操作:

RewriteRule ^buildings/(.*) /houses/ [R=302,L]

这匹配 /buildings/<anything></code> 反向引用包含 <code><anything> 部分。

首先使用 302(临时)重定向进行测试以避免潜在的缓存问题,只有在您确认它按预期工作后才更改为 301(永久)重定向。您应该在测试前清除浏览器缓存。

这需要在任何现有重写之前靠近 .htaccess 文件的顶部。