gpt4 book ai didi

regex - 如何在 .htaccess 中使用正则表达式转义 "?"for mod_rewrite

转载 作者:行者123 更新时间:2023-12-05 00:38:51 27 4
gpt4 key购买 nike

我需要逃避“?” url 中的字符,以便它与重写的 url 一起使用,例如 search/why-is-it?-1.html

我目前在 .htaccess 中有以下内容

RewriteEngine on
RewriteRule ^search/(.*)-([0-9]+).html$ index.php?search=$1&page=$2 [L]

谢谢

最佳答案

不要在您的网址中添加问号。 ?保留用于查询字符串的开头。

要将其放在 URL 中,请将其编码为 %3F .

阅读 RFCthis answer .

更新

如果使用 PHP(看起来你是),你可以做这样的事情(请求的页面是 index.php/inter?net)...

<?php

var_dump($_GET);

$urlTokens = explode('/', $_SERVER['REQUEST_URI']);

$slug = end($urlTokens);

var_dump($slug);

输出
array(1) {
["net"]=>
string(0) ""
}

string(9) "inter?net"

你可以看到 $_GET很困惑。

关于regex - 如何在 .htaccess 中使用正则表达式转义 "?"for mod_rewrite,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5161967/

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