2012-07-26 56 views
1

我试图让我的链接更容易编写,没有.php。使用.php不需要使用.htaccess

我重写规则是:

RewriteEngine on 
RewriteRule ([a-z]+)$ $1.php 

这是第一次的.htaccess我写我自己,但似乎并没有工作。 我很喜欢RegExp。我在这里看不到问题。

感谢您的帮助。

+2

的的.htaccess测试仪(http://htaccess.madewithlove.be /)告诉我你的规则工作正常。你有什么问题? – 2012-07-26 03:06:55

+0

我收到:“内部服务器错误” – Shawn31313 2012-07-26 03:14:43

回答

1

确保了mod_rewrite在Apache的配置以及所有的AllowOverride

LoadModule rewrite_module modules/mod_rewrite.so 
<Directory "c:/wamp/www/"> 

    AllowOverride all 
    Order Deny,Allow 
    Deny from all 
    Allow from all 

</Directory> 

启用为了得到它在WAMP workign 单击系统托盘中的围棋 WAMP的图标apache和 然后在httpd.conf中

在文件中搜索mod_rewrite.so。如果该行被注释(#),则取消注释。 它应该看起来像

LoadModule rewrite_module modules/mod_rewrite.so 

然后寻找类似

<Directory "c:/wamp/www/"> 

你应该找到一个AllowOverride none将其更改为AllowOverride all 重新启动WAMP服务器

然后你的.htaccess设置为nickb建议

RewriteEngine on 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_FILENAME}\.php -f 
RewriteRule ^(.*)$ $1.php 

如果仍然不工作只是做在httpd.conf的AllowOverride none搜索,并将它们全部更改为AllowOverride all,因为有可能是一对夫妇

+0

所以我只是把这个添加到.htaccess中? – Shawn31313 2012-07-26 03:30:14

+0

我用指示更新了我的帖子。你想编辑http.conf – Kris 2012-07-26 03:36:29

+0

谢谢,最后我可以使用rewriteEngine – Shawn31313 2012-07-26 03:40:41

1

即使你的工作文件名的字母,这是我用过不管文件的名称/路径的省略.php扩展:

RewriteEngine on 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_FILENAME}\.php -f 
RewriteRule ^(.*)$ $1.php 

它确保你没有试图请求一个目录,并且请求的文件是一个PHP文件。

+0

没有任何工作。我在使用wamp服务器的localHost上。 – Shawn31313 2012-07-26 03:12:29