htaccess RewriteRule:删除和替换

问题描述 投票:0回答:1

我想通过.htaccess重定向,旧的URL就像

https://www.domain.de/something/?action=set_login&syncid=1&title=2&username=3&password=4&description=5&link=6&icon=7&localid=44285,3826274818&modified=2021-03-30%2014:06:59&seccode=8&valid=1

新网址应如下所示:

https://www.domain.de/something/set_login.php?syncid=1&title=2&username=3&password=4&description=5&link=6&icon=7&localid=44285,3826274818&modified=2021-03-30%2014:06:59&seccode=8&valid=1

所以,简而言之:

删除:

?action=

使用动作文本作为脚本名称:

set_login
应该是脚本名称
set_login.php

以下所有参数应按原样附加。

对此有什么想法吗?我想它必须分成两条规则?

我尝试了这样的方法,但是“某事”和动作参数仍然添加在

set_login.php?
之后,我必须手动实现每个脚本名称:

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{QUERY_STRING} .*action=get_logins.*
RewriteRule ^(.*) https://%{HTTP_HOST}/something/set_login.php?$1 [QSA,L]
</IfModule>
.htaccess mod-rewrite
1个回答
0
投票

您可以在站点根目录 .htaccess 中使用此重定向规则:

RewriteEngine On

RewriteCond %{QUERY_STRING} ^(.*&)?action=([^&]+)(?:&(.*))?$ [NC]
RewriteRule ^ %{REQUEST_URI}%2.php?%1%3 [L,R=302,NE]

一旦确认其工作正常,请将

R=302
替换为
R=301
。在测试您的
R=301
规则时,避免使用
mod_rewrite
(永久重定向)。

© www.soinside.com 2019 - 2024. All rights reserved.