我希望所有传入的流量都能通过PHP脚本通过隧道传输,只需将脚本上传到服务器并在我的.htaccess中添加几行即可。这可能吗?
例如:
- 我访问了一个页面
- PHP脚本获取整个URL,并将重定向目标URL返回给.htaccess
- 只有当PHP脚本修改了URL时,.htaccess才会重定向
使用Apache的mod_rewrite更传统的规则可以完成类似的操作。或者,正如你在对话中提到的,@Zak的回答可能使用了内部重定向。
以下是一个示例序列:
- 用户访问页面(例如
http://myhost.com/my_area/my_file.jpg
) .htaccess
被配置为将/myarea
(甚至/
)的所有请求传递给php脚本。(例如handle-url.php
)(示例代码)handle-url.php
中的逻辑现在可以做以下几件事中的任何一件:- 返回错误
- 使用@Zak提到的
header("Location: URL)
方法将用户重定向到任何url(例如http://myhost.com/file_area/my_file.jpg
) - 直接从磁盘读取文件并将数据返回给用户。(示例代码)
看看mod_rewrite
的高级示例页面。根据你到底需要做什么,可能还有其他选择。
例如,动态内容再生可能会有所帮助。如FallbackResource
。
.htaccess
在PHP
脚本之前激发。将.htaccess
视为web服务器(Apache)设置的扩展。您将无法将某些内容"发送"到.htaccess
,因为它是服务器的配置文件,而不是引擎本身。相反,您可以使用PHP
的原生header redirect
PHP
header('Location: http://www.example.com/');