使用 .htaccess 在 PHP 中使用尾部斜杠作为 GET 变量
Using trailing slashes as GET variables in PHP with .htaccess
我目前正在尝试创建一个 .htaccess
文件,该文件基本上转换为:
[发件人] http://www.example.com/pagename.php?1=name&2=email&3=hash
[至] http://www.example.com/pagename/name/email/hash
然后可以在 PHP 中读取为 $name = $_GET[1]; $email = $_GET[2]
等等...
其中 pagename
等于不带文件扩展名的文件名,然后将其后的每个尾部斜杠设置为一个新的 GET 变量,递增一个(理论上您可以定义无限的尾部斜杠和它会继续将这些 $_GET
变量递增一个。
有人知道怎么做吗?
如果你想要有任意数量的变量,你需要打开 Multiviews 然后在你的 php 脚本中添加一些代码来查看 $_SERVER['PATH_INFO']
变量。所以像这样:
$data = explode("/",trim($_SERVER["PATH_INFO"],"/"));
$length = count($data);
for ($i = 1; $i <= $length; $i++) {
$_GET[$i] = $data[$i-1];
}
用所有路径元素填充 $_GET
变量。
然后在 htaccess 中,您需要这样的东西来附加 php
扩展名:
RewriteEngine On
RewriteCond %{DOCUMENT_ROOT}/.php -f
RewriteRule ^([^/]+)(/.+)$ /.php [L]
我目前正在尝试创建一个 .htaccess
文件,该文件基本上转换为:
[发件人] http://www.example.com/pagename.php?1=name&2=email&3=hash
[至] http://www.example.com/pagename/name/email/hash
然后可以在 PHP 中读取为 $name = $_GET[1]; $email = $_GET[2]
等等...
其中 pagename
等于不带文件扩展名的文件名,然后将其后的每个尾部斜杠设置为一个新的 GET 变量,递增一个(理论上您可以定义无限的尾部斜杠和它会继续将这些 $_GET
变量递增一个。
有人知道怎么做吗?
如果你想要有任意数量的变量,你需要打开 Multiviews 然后在你的 php 脚本中添加一些代码来查看 $_SERVER['PATH_INFO']
变量。所以像这样:
$data = explode("/",trim($_SERVER["PATH_INFO"],"/"));
$length = count($data);
for ($i = 1; $i <= $length; $i++) {
$_GET[$i] = $data[$i-1];
}
用所有路径元素填充 $_GET
变量。
然后在 htaccess 中,您需要这样的东西来附加 php
扩展名:
RewriteEngine On
RewriteCond %{DOCUMENT_ROOT}/.php -f
RewriteRule ^([^/]+)(/.+)$ /.php [L]