构建应用程序时隐藏 .php 扩展名的正确方法

Proper way to hide .php extension while building an Application

对于最后一个网站项目(带有 AJAX + PHP 联系表的基本网站),我使用了下面的 .htaccess 文件来隐藏扩展。它在 Hostgator 服务器上完美运行。

Options +FollowSymLinks -MultiViews
# Turn mod_rewrite on
RewriteEngine On
RewriteBase /

## don't touch /forum URIs
RewriteRule ^forums/ - [L,NC]

## hide .php extension snippet

# To externally redirect /dir/foo.php to /dir/foo
RewriteCond %{THE_REQUEST} ^[A-Z]{3,}\s([^.]+)\.php [NC]
RewriteRule ^ %1 [R,L]

# To internally forward /dir/foo to /dir/foo.php
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}.php -f
RewriteRule ^(.*?)/?$ .php [L]

现在我要构建一个新的应用程序(功能和动态)。我将 .htaccess 文件复制到我的 localhost/appfolder/ (WAMPserver)。还启用了 rewrite_module。但是由于某种原因它在本地主机上不起作用。

检查我在尝试 运行 本地主机上与上述 .htaccess 相同的网站时获得的错误消息(在实时服务器上运行但不是在本地主机上)

**Not Found**

    The requested URL /services.php was not found on this server.

    Apache/2.4.9 (Win32) PHP/5.5.12 Server at localhost Port 80

我应该添加什么还是我做错了。 实现该目标的正确方法是什么。你们是怎么做到的?

要使其在子目录 appfolder 上工作,您需要替换:

RewriteBase /

来自

RewriteBase /appfolder/

否则显示的代码将尝试在站点的根目录中查找任何 .php 文件。