.htaccess 如何写htaccess 301重定向-需要删除一些“?“在查询字符串中

zpqajqem  于 2023-06-30  发布在  其他
关注(0)|答案(1)|浏览(115)

我不能写一个工作301重定向为一些特定的网页。
我有一个旧的URL与“?“在字符串中,如:

/old-url?page=2
/old-url?added1&page=2
/old-url?page=3

所以,如果可能的话,我想把所有这些页面重定向到一个独特的/新的页面。
你能帮帮我吗
通常我使用代码:

RedirectPermanent /old-url https://www.new-url.tld

它适用于所有页面,除了这些URL。

vltsax25

vltsax251#

这可能就是你正在寻找的:

RewriteEngine on
RewriteCond %{QUERY_STRING} ^page=2$ [OR]
RewriteCond %{QUERY_STRING} ^added1&page=2$ [OR]
RewriteCond %{QUERY_STRING} ^page=3$
RewriteRule ^/?old-url$ /new-page [R=301,L,QSD]

显然,重写模块需要在http服务器内的该位置被加载并激活。
在中央http服务器的主机配置(实现此类规则的首选位置)或分布式配置文件(“.htaccess”)中,如果该功能已启用且文件位于http主机DOCUMENT_ROOT中,则该实现将同样工作。
根据OP对此回答的评论进行更新:

RewriteEngine on
RewriteCond %{QUERY_STRING} ^page=\d+$ [OR]
RewriteCond %{QUERY_STRING} ^added1&page=\d+$ [OR]
RewriteCond %{QUERY_STRING} ^page=\d+$
RewriteRule ^/?livre-d-or/?$ /avis-dj-mariage-64 [R=301,L,QSD]

相关问题