将多个PHP文件视为目录,htaccess

4
我是一个新手,对于htaccess文件的使用还不熟悉。我知道如何基本重写URL,例如删除index.php、扩展名等。我也能够使用$_SERVER["PATH_INFO"]来处理文件后面的内容。
但问题在于,如果要对除了(未显示的)index.php 之外的另一个带有尾部伪目录结构的文件进行操作,该怎么做呢?比方说,我有这样一个文件:
domain.com/render.php/this

我希望您能将其翻译为以下内容:

domain.com/render/this

我的临时解决方法是在我的index.php文件中处理所有的逻辑,但我想将其拆分成几个文件,这样就可以让index.php处理我的主页内容,而render.php则处理完全不同的内容。

感谢您的时间。


1
现在无法测试,而且我对PI也不是很熟悉,但是RewriteRule ^([^./]+)/(.*)$ $1.php/$2 [L]不是可以完成任务吗?你可能需要使用DPI标志。 - Sumurai8
感谢您最终的点赞和采纳!+1 给你! - cnst
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都使用它来支持正则表达式。)

哦,我认为我的正则表达式上有一个打印错误 -- ([^/.]) 应该是 ([^/.]+) - cnst

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接