不使用mod_rewrite运行没有扩展名的PHP?

ZZ *_*der 12 php apache mod-rewrite server-side-includes

使用Apache 2.2和PHP 5,在没有.php扩展名的情况下运行PHP的最佳方法是什么.例如,我有一个名为app.php的脚本,我喜欢将其作为调用

http://example.com/app

请注意,我仍然希望保留.php扩展名到文件,我没有mod_rewrite.不要使用index.php,因为它需要太多目录.

我确实找到了一种方法,将其添加到我的.htaccess中,

AddHandler server-parsed .php
SetHandler application/x-httpd-php
AddHandler application/x-httpd-php .php
Run Code Online (Sandbox Code Playgroud)

使用此页面,页面运行速度稍慢.我怀疑它在每个PHP页面上调用SSI.不知道有没有更好的方法来实现这一目标.

out*_*tis 25

另一种方法是使用内容协商.启用多视图:

Options +MultiViews
Run Code Online (Sandbox Code Playgroud)

如果命名资源不存在,Apache将为该文件生成glob,然后根据浏览器发送的媒体类型和内容编码要求进行排序.如果只有一个文件(您的PHP脚本),那么这就是URL解析的内容.

  • 这仍然相关,您可能需要将"AddType application/x-httpd-php .php .phtml .html .htm"添加到"/etc/apache2/mods-enabled/mime.conf:" (2认同)

小智 7

您还可以在以下位置强制执行特定文件的mime类型.htaccess:

<Files app>
ForceType application/x-httpd-php
</Files>
Run Code Online (Sandbox Code Playgroud)