从 URL 创建 php 变量而不获取


Create php variable from URL without get

我正在生成一个下载链接,我通过电子邮件发送该链接以下载pdf文件。下载链接中有一些参数(base64 编码)用于验证正确的配置文件/用户。我想成为下载链接,如下所示:

www.example.com/download/ZW5jb2RlbXljb2Rl

参数直接添加到子目录之后。我知道它可以用php GET完成,如下所示:www.example.com/download/index.php?base64=ZW5jb2RlbXljb2Rl

但在我看来,使用第一个 URL 更好。除了我不知道如何使用 php 完成此操作。我想我必须在 htaccess 中进行重写?

我发现了这个线程:从子目录内重写 PHP 参数的 URL

但是我已经有一些htaccess重写(JOOMLA),它仅适用于唯一的文件夹...

感谢您的努力!

你别无选择,只能为此使用重写 这就是它的用途。

但是我已经有一些htaccess重写(JOOMLA),它只是为了 唯一的文件夹..

这绝对无关紧要。您的 Apache 设置可以根据需要包含任意数量的重写。我见过100个。

因此,您可以将这些规则添加到当前的Joomla规则above,它应该可以工作。

RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^download/(.+)/?$ /download/index.php?base64=$1 [L]

否则,您将不得不按照乔纳森所说的进行操作,并在您的URL中使用index.php

您可以使用

echo basename($_SERVER['PHP_SELF']);查看当前页面。您可以使用以下命令在最后一次/后分解字符串:

$filename = explode('/', basename($_SERVER['PHP_SELF']));

这样,如果您的链接 www.example.com/download/ZW5jb2RlbXljb2Rl,则文件名值将为"ZW5jb2RlbXljb2Rl"。

我不确定这是否是您的问题,但这应该根据使用情况起作用。