我试图找出如何修改.htaccess文件,所以我可以做两件事情:的Apache + PHP没有“.PHP”文件扩展名,但包括路径信息
- 是不是一定要包括。我的PHP文件的PHP扩展(例如,请求
my.domain.com/page
映射到my.domain.com/page.php
)。 - 做了#1,同时还包括附加路径信息(例如,对
my.domain.com/page/path/stuff/here
的请求映射到my.domain.com/page.php/path/stuff/here
)。
我已经找到了如何通过添加以下到.htaccess文件做#1:
# Allow PHP files without ".php" extension.
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([^/.]+)/?$ /$1.php [L,QSA]
不过,现在我想修改重写规则,因此适用于#2 。
除了'NC,L'之外,它和OP一样。请始终将解释添加到您的答案(“NC,L”是什么意思?)。 – DanFromGermany 2014-09-23 17:04:08
有点,但不是真的。正则表达式是不同的。另外:[L = Last](http://httpd.apache.org/docs/2.2/rewrite/flags.html#flag_l)[NC = nocase](http://httpd.apache.org/docs/2.2/重写/ flags.html#flag_nc)。 – jassok 2014-09-23 17:07:10
不幸的是,不这样做。但要回答jassok的问题,这是一种使HTTP请求更具体的方法。您可以从pathinfo中获取数据,以确定要执行哪个函数,以及您在查询字符串或表单数据中所期望的数据以及要返回的内容。这样,您可以为多个相关请求编写单个控制器。 – 2014-09-23 21:42:38