2013-02-14 56 views
1

我想在这里做一些相当简单的事情,但一直没有能够通过在这里搜索或谷歌找到解决方案 - 一定是我不知道究竟是什么寻找。建立一个简单的.htaccess层次重写

基本上,我想用我的.htaccess文件做到这一点:

www.mydomain.com/$ 显示 www.mydomain.com/$.php

www.mydomain.com/products/$ 显示 www.mydomain.com/products/$.php

此外,什么是学习如何编写代码.htaccess文件你喜欢的资源?我知道我的问题很简单,我很想从现在开始自己做这样的事情。

非常感谢

回答

1

如果我理解正确的话,你只是想一个“.PHP”添加到每个请求。你可以使用

RewriteRule ^(.*)$ $1.php 

实现这一点,但它会增加一个“.PHP”即使用户请求www.example.com/foo.php所以你也许想用

RewriteRule ^(.*)(\.php)?$ $1.php 

编辑:如果你想允许访问现有的文件,例如CSS或JavaScript文件或图像,使用的RewriteCond:

RewriteEngine On 
RewriteCond %{REQUEST_FILENAME} -f 
RewriteRule ^(.*)$ $1.php [END] 
+0

谢谢,但现在给了我一个内部服务器错误:( – 2013-02-14 17:49:11

+0

对不起,你必须使用'重写规则^(。*?)(\ PHP)? $'1.php [END]' '[END]'标志告诉重写引擎在这条规则后停止,并且不再处理请求,'?'是因为'。*'会“吃”整个字符串,包括'.php' – user1950929 2013-02-14 19:50:32

+0

我仍然遇到同样的问题,我认为它可能与我的.htaccess文件的其他内容有关,所以我试着删除了所有内容,并且只放了你给我的代码。内部服务器错误 – 2013-02-14 19:55:26