重写URL以允许AJAX请求

时间:2016-10-28 07:19:22

标签: javascript php jquery ajax .htaccess

我有一个htaccess规则,将所有请求重定向到index.php,但这是干扰需要直接访问所请求文件的AJAX请求。

我正在尝试通过将?ajax = true 附加到所有AJAX请求网址来解决此问题,并创建一条规则,说明“所有以?ajax = true结尾的网址应直接处理

这是我目前的.htaccess文件:

RewriteEngine On      
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f

RewriteCond %{QUERY_STRING} !^ajax=true$
RewriteRule ^(.*)$ index.php?params=$1 [NC]

我的AJAX请求网址如下:

http://www.domain.com/process_ajax.php?ajax=true

到目前为止没有运气:(

1 个答案:

答案 0 :(得分:2)

我认为你接近使用否定RewriteCond,但语法可能有点偏。尝试使用括号,如下面的示例所示。

首先,我会为GET参数使用通配符值,例如.*,这样您就可以专注于定位正确的键。一旦它正常工作,您可以再次测试以获得正确的值,大概是true

尝试:

RewriteEngine On      
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{QUERY_STRING} !(ajax=.*)$ 
RewriteRule ^(.*)$ index.php?params=$1 [NC]