我正在生成一个下载链接,我通过电子邮件发送该链接以下载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"。
我不确定这是否是您的问题,但这应该根据使用情况起作用。