Maison > Questions et réponses > le corps du texte
Je ne sais pas pourquoi il manque une barre oblique après la réécriture
Voici le code go.php
<?php
$url=$_GET['url'];
$url=urldecode($url);
echo $url;
?>
Les règles de réécriture sont les suivantes
RewriteEngine On
RewriteRule ^go/(.*)$ go.php?url= [QSA]
巴扎黑2017-05-16 17:06:19
Référence Pourquoi Apache supprime-t-il plusieurs barres obliques ?
@Pekka 웃 a souligné que plusieurs /
adjacents dans l'URI ne sont pas conformes à la norme RFC, @Pekka 웃 a deviné qu'Apache est conçu pour fusionner plusieurs /
adjacents en un seul. /
不符合RFC标准,@Pekka 웃 猜测Apache被设计为将多个相邻的/
合并成一个。
同样,我搜索后了解到在nginx中有merge_slashes这样一项配置,用于开启或者关闭将请求URI中相邻两个或更多斜线合并成一个的功能,默认这项配置是开启的。由此可见,apache和nginx默认在处理URI中多个相邻/
时行为时一致的,都遵循了RFC标准。
至于http://localhost/go.php?url=http://www.163.com/中的//
没有合并成一个,而
http://localhost/go/http://www.163.com/中的//
/
adjacents dans l'URI par défaut, et tous deux suivent la norme RFC.
//
dans http://localhost/go.php?url=http://www.163.com/, ils ne sont pas fusionnés en un seul, mais
Les //
dans http://localhost/go/http://www.163.com/ sont fusionnés en un seul. Il devrait être que le premier soit conforme à la norme RFC, tandis que le second le fait. pas. 🎜
🎜Je n'ai pas une compréhension approfondie de la norme RFC, donc la déclaration ci-dessus n'est peut-être pas assez rigoureuse. S'il y a des erreurs, veuillez les signaler. Mais après avoir compris ce niveau, je pense que c'est presque suffisant. Quant à la façon de modifier les règles ou le code de réécriture, veuillez le rechercher vous-même sur Google. 🎜