我需要逃避“?”网址中的字符,以便与搜索/为什么是它的重写网址一起使用?-1.html
我目前在.htaccess
中有以下内容RewriteEngine on
RewriteRule ^search/(.*)-([0-9]+).html$ index.php?search=$1&page=$2 [L]
由于
答案 0 :(得分:6)
请勿在网址中添加问号。 ?
保留用于查询字符串的开头。
要将其放入网址,请将其编码为%3F
。
阅读RFC和this 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
感到困惑。