创建301重定向以从.htaccess中的URL中删除特定文件夹,同时保持现有重写规则的最佳方法是什么?

von4xj4u  于 2023-05-23  发布在  其他
关注(0)|答案(1)|浏览(181)

我需要做301重定向从xyz.com/folder/post-slugxyz.com/post-slug通过.htaccess,并希望保持这两个重写规则。
目的是使url在有/folder/的情况下也能正常工作。
这是现有的规则:

RewriteRule ^folder/([A-Za-z0-9-]+)/?$ post-details.php?url=$1 [NC,L]

我试图保留现有的一个,并添加了另一个这样的:

RewriteRule ^folder/([A-Za-z0-9-]+)/?$ post-details.php?url=$1 [NC,L]

RewriteRule ^([A-Za-z0-9-]+)/?$ post-details.php?url=$1 [NC,L]

但它不起作用

f87krz0w

f87krz0w1#

你有两个选择:
1.重写+规范:

RewriteRule ^(?:folder/)?([A-Za-z0-9-]+)/?$ post-details.php?url=$1 [DPI,QSA,NC,L]

your.example/folder/post-slugyour.example/post-slug的规范 meta标记设置为your.example/post-slug。停止链接到旧的URL,新的URL是人们将使用和搜索引擎将看到的。
优点:对SEO有好处。缺点:可能会破坏期望页面位于新URL的相对链接。
1.重定向+重写:

RewriteRule ^folder/([A-Za-z0-9-]+)/?$ https://your.example/$1 [R=301,L]
RewriteRule ^([A-Za-z0-9-]+)/?$ post-details.php?url=$1 [DPI,QSA,NC,L]

用户和搜索引擎都将被发送到新的URL。
优点:不需要做canonical tag。缺点:浪费了到服务器的往返,所以对SEO没有那么好。
请注意,我在重写中添加了DPIQSAflags,因为几乎总是需要它们来避免递归的内部重定向问题。

相关问题