我正在生成下载链接,我通过电子邮件发送该链接以下载pdf文件。下载链接中有一些参数(base64编码)来验证正确的配置文件/用户。我想成为下载链接如下:
www.example.com/download/ZW5jb2RlbXljb2Rl
参数直接在子目录后添加。 我知道可以用php GET完成如下: www.example.com/download/index.php?base64=ZW5jb2RlbXljb2Rl
但在我看来,使用第一个网址更好。除了我不知道如何用PHP完成这个。 我想我必须在htaccess中重写一下?
我找到了这个帖子:Rewriting a URL to a PHP parameter from inside a subdirectory
但是我已经有了一些htaccess重写(JOOMLA),它只是用于唯一的文件夹......
感谢您的努力!
答案 0 :(得分:2)
你别无选择,只能使用重写这就是它的用途。
但是我已经有了一些htaccess重写(JOOMLA),它只是为了 唯一的文件夹..
这绝对没关系。您的Apache安装程序可以包含所需的重写次数。我见过100个。
所以你可以添加这些规则above
你当前的Joomla规则,它应该可以工作。
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^download/(.+)/?$ /download/index.php?base64=$1 [L]
否则你必须做Jonathan所说的并在你的URL中使用index.php
。
答案 1 :(得分:1)
您可以使用echo basename($_SERVER['PHP_SELF']);
查看当前页面。
您可以使用以下内容在最后/
之后展开字符串:
$filename = explode('/', basename($_SERVER['PHP_SELF']));
这样,如果您的链接是www.example.com/download/ZW5jb2RlbXljb2Rl,则文件名值将为" ZW5jb2RlbXljb2Rl"。
我不确定这是否是您的问题,但这取决于使用情况。