使用 .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]