是否有可能在Apache中的.htaccess文件中读取PHP $ _SESSION数组中的数据? 所以说我有以下几点:
$_SESSION['foo'] = 'bar';
那么我可以在.htaccess中进行如下操作:
RewriteRule bla.png folder/{the PHP session var foo}/file.png
那可能吗?
我已经有一个工作的解决方法,但如果这是可能的,这将是更好的方式。
https非www到https www
如何使用.htaccess重新编写URL
500内部服务器尝试使用ErrorDocument处理请求时出错
使用.htaccess来限制对文件下载的访问
mod_rewrite启用,但不能正常工作
基于ip的mod_rewrite
使用重写规则从url中删除.PHP后,css和img文件有404
我不知道它是可能的。
回答主要问题:
不,至少不像你想象的那样。 该文件被称为.ht access因为它们是“分布式配置文件” ,当然配置&& 访问处理必须先发生 – 所以你不能得到“PHP会话变量”,因为它只是在处理.htaccess
我会在下面向您展示一些解决方法,但之前 – 您应该注意这一点:
这真的有必要吗? – 建议解决方案:
如果你只是想通过登录用户来重定向文件路径 – .htaccess不是方法 – 只用bla.PHP作为地址,然后在PHP文件中做重定向 – 如下所示:
<?PHP session_start(); header("Location: folder/".$_SESSION['foo']."/file.png"); exit(); ?>
但是,如果你不能改变源URL,你将首先必须重定向bla.png bla.PHP但我想你知道如何做到这一点:-)
在使用MPV / MVC模型的框架中,出于某种原因,通常会有“路由”脚本 – 例如这个。
或者,你可以从这个脚本中创建一个“PHP-router”,在使用if/elseif/else或case添加一些其他依赖PHP的重定向,以便选择将要发生的事情 – 重定向的位置。
要么
你可能正在使用一个会话 – 所以为什么不直接在PHP中生成的URL像:
$url = "example.com/bla.png?foo=".$_SESSION['foo']; +正则表达式在.htaccess甚至:
$url = "example.com/folder/".$_SESSION['foo']."/file.png";
无论如何,我想你是重定向,因为你不能(出于某种原因)这样做。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。