.htaccess 301使用URL变量重定向

.htaccess 301使用URL变量重定向,.htaccess,redirect,.htaccess,Redirect,我正在尝试301重定向。但它不会被重定向 我的旧网址: 我的新网址: .htaccess中的我的代码: RewriteEngine On RewriteCond %{QUERY_STRING} ^([^&]&)*filter=Short%20Term%20Renting(&|$) RewriteRule ^category.php/services$ /short-term-renting? [L,R=301] 我引用了此链接“您正在匹配^category.php/se

我正在尝试301重定向。但它不会被重定向

我的旧网址:

我的新网址:

.htaccess中的我的代码:

RewriteEngine On
RewriteCond %{QUERY_STRING} ^([^&]&)*filter=Short%20Term%20Renting(&|$)
RewriteRule ^category.php/services$ /short-term-renting? [L,R=301]

我引用了此链接“

您正在匹配
^category.php/services
,而
services
不在您当前的请求URI中。另外,我建议匹配查询字符串,而不考虑字符大小写。因此,您的
.htaccess
应该如下所示:

RewriteEngine On
RewriteCond %{QUERY_STRING} ^.*?filter=Short%20Term%20Renting$ [NC]
RewriteRule ^category.php$ /services/short-term-renting? [NC,L,R=301]
演示:

更新:

如果您想提供
服务/*
URL,但又向同一
category.php
发出内部请求,您可以执行以下操作:

RewriteEngine On
RewriteCond %{QUERY_STRING} ^.*?filter=Short%20Term%20Renting$ [NC]
RewriteRule ^category.php$ /services/short-term-renting? [L,R=301]
RewriteRule ^services\/(.*)$ /category.php?filter=$1 [L]

Demo:

类别中的
bunch\
在哪里。php/services也不是旧URL的一部分。@04FS category.php/services是新URL的一部分是的,但是重写规则的第一部分是您要匹配的旧URL路径。我遵循了这个链接“Ok”它工作正常。但我需要像这里一样的301重定向。因此,当我重定向时,只有URL的名称必须更改。网页中的内容必须相同。