gpt4 book ai didi

apache - .htaccess 不会转义 RewriteRule 上的问号

转载 作者:行者123 更新时间:2023-12-01 15:14:06 24 4
gpt4 key购买 nike

我有一个使用旧类型单点登录的网站。父网站使用如下 URL 将用户引导至我的网站:

http://blabla.test/index.php?gid=abcd1234&u=bcanata&id=11472

我想将其重写为:

http://blabla.test/login/abcd1234/bcanata/11472

我创建了一个 .htaccess 文件如下:

RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^index.php?gid=(.*)&u=(.*)&id=(.*)$ login/$1/$2/$3 [L]

我尝试像这样转义 URL 中的问号:

RewriteRule ^index.php\?gid=(.*)&u=(.*)&id=(.*)$ login/$1/$2/$3 [L]

但是,不幸的是,这两个规则都不匹配并重写了 URL,我不明白为什么。

最佳答案

您不能匹配 RewriteRule 指令模式中的 url QueryString。您只能在 RewriteRule 中匹配 url 路径(即:index.php)。 ? 符号后的 url 部分是 URL QueryString。您需要匹配 RewriteCond 中的 %{QUERY_STRING} 变量。

RewriteEngine on

RewriteCond %{QUERY_STRING} ^gid=([^&]+)&u=([^&]+)&id=([^&]+)$ [NC]
RewriteRule ^index.php$ /login/%1/%2/%3? [L,R]

关于apache - .htaccess 不会转义 RewriteRule 上的问号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50341099/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com