.htaccess重写允许目录或没有目录

时间:2013-05-29 12:47:29

标签: .htaccess mod-rewrite

我有这个重写规则,为网址添加.php扩展名。

输入的网址如下所示:http://localhost/Home

Url的阅读方式如下:http://localhost/home.php

我遇到的问题是,某些网址可能看起来像这样:

http://localhost/sub/123

我应该解释一下,这实际上不是一个子目录。 sub部分是文件,123用作get变量。它看起来更干净。

如果发生这种情况,则会出现500错误;

这就是目前的情况

#add php extension
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_FILENAME}\.php -f 
RewriteRule ^(.*)$ $1.php

这就是我尝试但不起作用。

#add php extension
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_FILENAME}\.php -f 
RewriteRule ^(.*)|(.*)/(.*)$ $1.php

1 个答案:

答案 0 :(得分:1)

使用此代码更改代码以解决您的问题:

RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{DOCUMENT_ROOT}/$1.php -f
RewriteCond %{REQUEST_URI} !^/(phpscripts|js)/ [NC]
RewriteRule ^([^/]*)(?:/(.*?|))?/?$ /$1.php?$2 [L]