使用根目录上的.htaccess文件,我使用下面的代码-从url中删除了.php扩展名
RewriteEngine on
RewriteCond %{HTTP_HOST} ^(www.)?foobar.com$
RewriteCond %{REQUEST_URI} !^/foobar/
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /foobar/$1
RewriteCond %{HTTP_HOST} ^(www.)?foobar.com$
RewriteRule ^(/)?$ foobar/index.php [L]
RewriteRule ^([^'.]+)$ $1.php [NC,L]
我在htaccess中有上面的代码。但是当ajax调用如下时-
foobar.com/user/get/?a=getTaggedUsers&forumId=368
这会产生500内部服务器错误。
如果我删除.htaccess文件中的最后一行,即-
RewriteRule ^([^'.]+)$ $1.php [NC,L]
然后上面的查询字符串url就可以正常工作了。但现在我不得不把.php扩展名也放在url中。那么,如何使查询字符串在没有php扩展的情况下工作呢?
拥有这样的代码:
RewriteEngine on
RewriteBase /
RewriteCond %{HTTP_HOST} ^(www'.)?foobar'.com$
RewriteCond %{REQUEST_URI} !^/foobar/
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ foobar/$1 [L]
RewriteCond %{HTTP_HOST} ^(www.)?foobar'.com$
RewriteRule ^/?$ foobar/index.php [L]
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{DOCUMENT_ROOT}/$1'.php -f [NC]
RewriteRule ^([^.]+)/?$ $1.php [L]