我的.htaccess和index.php文件位于“localhost / poppers / f /”中。我有来自index.php处理的“/ f /”目录的所有url请求。我想得到的和echo就是“f”目录之后的整个路径,无论它包含多少尾部斜杠。
示例: localhost / poppers / f / abcdef / 123456 / xyz / 456
我想要的输出是: abcdef / 123456 / xyz / 456 (不论以下目录的数量)
我正在尝试使用的是:dirname(dirname($_SERVER['REQUEST_URI']))
,但似乎无效。
答案 0 :(得分:1)
$string = "localhost/poppers/f/abcdef/123456/xyz/456";
$parts = explode('/', $string);
此时你可以简单地删除前两个部分并将其余部分内爆()...
echo implode( array_slice($parts,3), '/' );
答案 1 :(得分:1)
您可以在重写规则中添加环境变量,并在PHP代码中访问它:
保持/poppers/f/.htaccess
像这样:
RewriteEngine On
RewriteBase /poppers/f/
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule (.+) index.php [L,E=URIPART:$1]
这会将每个请求路由到index.php
,并将/poppers/f/
的相对路径设置为env变量URIPART
。
现在在index.php
内,只需将此值设为:
$_SERVER["REDIRECT_URIPART"]
将显示值:abcdef/123456/xyz/456