我需要用HTACCESS方法转换吨的URL的已经产生(和已经编入索引...)由WordPress的文章包含文件夹/子文件夹简单的URL的没有任何文件夹/子文件夹名称。
示例:
从https://www.website.com/Animals/Cats/mycat.html到https://www.website.com/mycat.html
从https://www.website.com/Animals/Dogs/mydog.html到https://www.website.com/mydog.html
从https://www.website.com/Countries/France/bordeaux.html到https://www.website.com/bordeaux.html
等等。
我已经更改了WordPress配置中的永久链接选项。所以,现在产生的URL是在良好的格式(例如:https://www.website.com/bordeaux.html),不带任何文件夹名称。
我的问题是重定向所有旧的网址到这个新的格式,以防止404和保持排名。
如果尝试在我的. htacess中添加此行:RewriteRule ^/(.*)\.html$ /$1 [R=301,L,NC]
我试过RedirectMatch 301 (.*)\.html$
方法,结果还是一样。我快被这个弄疯了。
我做错了什么,你能帮帮我吗?
"谢谢"
4条答案
按热度按时间8qgya5xd1#
用
RewriteRule
* 模式 * 匹配的URL路径从来不以斜杠开头。但是当有更多的“文件夹”时,你可以用这个来匹配最后一个路径段。并且目标URL也需要以.html
结尾(根据你的例子)。因此,这可以写在一个指令中:
这可以处理任何层次的嵌套“文件夹”,但是与文档根目录中的
/foo.html
(目标URL)不匹配(由于正则表达式中的斜杠前缀),所以没有重定向循环。(No需要任何前述 * 条件 *。)
这里,
$1
反向引用包括.html
后缀。ecbunoof2#
将旧URL重定向到不带文件夹名称的新URL。可以使用以下代码重定向包含.html的URL:
hec6srdp3#
只需匹配URL的最后一部分并将其传递给重定向:
它将匹配任意数量的目录,如:
fivyi3re4#
怀特先生用他的答案完成了这项工作:
RewriteRule ^/(.*)\.html$ /$1 [R=301,L,NC]
对于这种情况下的WordPress用户,将此代码添加到.htaccess中,您将获得更多的efficients SEO结果。
也谢谢tttony和jamal。做得好,解释得好!