将多个 php 文件视为目录,htaccess
Posted
技术标签:
【中文标题】将多个 php 文件视为目录,htaccess【英文标题】:Treat more than one php file as directory, htaccess 【发布时间】:2016-11-04 12:05:55 【问题描述】:我是 htaccess 文件的新手,我了解如何对 URL 进行基本的重写,例如删除 index.php、扩展名等。我还可以使用 $_SERVER["PATH_INFO"] 处理任何尾随文件。
我纠结的是如何在除(未显示的)index.php 之外的另一个文件上使用尾随的虚假目录结构来做到这一点。假设我有
domain.com/render.php/this
我想让它阅读
domain.com/render/this
我目前的解决方法是在我的 index.php 文件中执行我的所有逻辑,但我想将它分成几个文件,这样我就可以让 index.php
做我的主页内容,而 render.php
完全不同的东西。
感谢您的宝贵时间。
【问题讨论】:
现在不能测试,而且我对 PI 也不是很熟悉,但是RewriteRule ^([^./]+)/(.*)$ $1.php/$2 [L]
不做这项工作吗?您可能需要使用 DPI
标志。
感谢您最终的支持+接受! +1 给你!
【参考方案1】:
这取决于您的整体目录结构。以Apache .htaccess to hide both .php and .html extentions 为例。
如果您已经将/render/this
配置为转到/render.php/this
,而您所要做的就是以另一种方式执行重定向,那么试试这个:
RewriteEngine On
RewriteCond %REQUEST_URI \b\.php\b
RewriteRule ^([^/.])\.php/(.*)$ $1/$2 [R]
(\b
部分匹配单词边界,根据 pcrepattern(3)
,它来自 pcre
库,Apache httpd
和 nginx
都在支持中使用正则表达式。)
【讨论】:
嘿,我认为我上面的正则表达式中有一个错字——([^/.])
应该是([^/.]+)
。以上是关于将多个 php 文件视为目录,htaccess的主要内容,如果未能解决你的问题,请参考以下文章