重定向许多动态 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
文件的顶部。
我有一个通过类别生成动态 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
文件的顶部。