在root上使用.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]
然后上面的查询字符串网址工作正常。但是现在我必须在网址中添加.php扩展名。那么如何在没有php扩展的情况下使查询字符串工作?
答案 0 :(得分:1)
让您的代码如下:
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]