用 .htaccess 重写路径变量

Rewrite Path Variable with .htaccess

我正在创建需要与一些 PC 软件通信的程序。当 PC 软件调用脚本 int 需要包含服务器上文件的用户名和相对路径时 PHP 需要读取。

这是 PHP 在 get.php:

$Username = $_GET['Username'];
$RelativePath = $_GET['Path'];

未重写 URL 看起来像这样:

http://localhost/get.php?Username=C8WgtdmAytNhGcq&Path=folder/Test.txt

现在我想改写成:

http://localhost/get/C8WgtdmAytNhGcq/folder/Test.txt

但是我遇到了问题,因为路径包含斜杠。

如何用路径中的多个文件夹重写它?

您可以在站点根目录 .htaccess 中使用此规则:

Options -MultiViews
RewriteEngine On

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^get/([^/]+)/(.+)$ get.php?Username=&Path= [L,QSA,NC]

.+ 将匹配 1 个或多个任意字符,包括 /