如果您打算-1这个问题,请告诉我如何改进它,而不是仅仅离开它。
这是一个带有一些编辑的副本
我正在制作一个开源软件,但我的.htaccess需要一点调整。
如何在我的PHP代码中抓取www.mydomain.net/forum/method/user//abc
等URL并保留//
?
我看过这里:allow slash in url .htaccess
但那没有用。
这就是我所拥有的:
的.htaccess
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-l
RewriteRule ^(.+)$ index.php?/=$1 [NC,QSA,L,NE]
和
geturl.php
$url = (isset($_GET['/']) ? $_GET['/'] : null);
die($url);
输出:account/signup/2/sskssks
网址:account/signup/2//sskssks
预期输出:account/signup/2//sskssks
基本上,有些东西正在移除/修剪//并将其设置为/.
答案 0 :(得分:2)
Section 3 of RFC 3986涵盖统一资源标识符(URI)中路径组件的通用语法。
path = path-abempty ; begins with "/" or is empty
/ path-absolute ; begins with "/" but not "//"
/ path-noscheme ; begins with a non-colon segment
/ path-rootless ; begins with a segment
/ path-empty ; zero characters
path-abempty = *( "/" segment )
path-absolute = "/" [ segment-nz *( "/" segment ) ]
path-noscheme = segment-nz-nc *( "/" segment )
path-rootless = segment-nz *( "/" segment )
path-empty = 0<pchar>
segment = *pchar
segment-nz = 1*pchar
segment-nz-nc = 1*( unreserved / pct-encoded / sub-delims / "@" )
; non-zero-length segment without any colon ":"
pchar = unreserved / pct-encoded / sub-delims / ":" / "@"
定义segment-nz
的行表示路径中的各个细分受众群,即/aaa/bbb/ccc
(&#39; aaa&#39;,&#39; bbb&#39;和&#39; ccc& #39;是每个段),不能为空。它们必须包含至少一(1)pchar
。有一些特殊情况可以开始一个root和空(/
)并且只是空的绝对路径,还有一些在讨论Web URL时很少遇到的其他路径。
您的URI路径正在规范化,从您的路径中删除额外的/
。如果斜杠很重要,则需要使用percent encoding将其作为数据发送。