我有这个重写规则,为网址添加.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
答案 0 :(得分:1)
使用此代码更改代码以解决您的问题:
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{DOCUMENT_ROOT}/$1.php -f
RewriteCond %{REQUEST_URI} !^/(phpscripts|js)/ [NC]
RewriteRule ^([^/]*)(?:/(.*?|))?/?$ /$1.php?$2 [L]