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

时间:2015-08-05 14:29:09

标签: php apache .htaccess mod-rewrite hide

对于最后一个网站项目(带有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 ^(.*?)/?$ $1.php [L]

现在我要构建一个新的应用程序( 功能和动态 )。我将.htaccess文件复制到我的localhost / appfolder /(WAMPserver)。同时启用rewrite_module。但是,由于某种原因,它在localhost上无法正常工作。

检查我尝试在上面.htaccess的本地主机上运行相同网站时获得的错误消息( 在Live Server上运行但在本地主机上运行

**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

我应该添加某些内容还是我做错了。 实现这一目标的正确方法是什么。你们是怎么做的

1 个答案:

答案 0 :(得分:1)

要使其在子目录appfolder上运行,您需要替换:

RewriteBase /

通过

RewriteBase /appfolder/

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