我在 .htaccess
文件中有一组规则,将所有请求重定向到 index.php
,但这会干扰需要访问所请求的 AJAX 请求直接归档。
我试图通过将 ?ajax=true
附加到所有 AJAX 请求 URL 并创建一个规则来解决此问题,该规则表示“所有以 ?ajax=true
结尾的 URL应直接处理”。
这是我当前的 .htaccess
文件:
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{QUERY_STRING} !^ajax=true$
RewriteRule ^(.*)$ index.php?params=$1 [NC]
我的 AJAX 请求 URL 如下:
http://www.example.com/process_ajax.php?ajax=true
到目前为止还没有运气。
最佳答案
我认为您已经接近使用负数 RewriteCond
但语法可能有点不对劲。尝试使用括号,如下面的示例所示。
首先,我会为 GET
参数使用通配符值,例如 .*
,这样您就可以专注于定位正确的键。一旦它正常工作,您可以再次测试以获得正确的值,大概是true
。
尝试:
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{QUERY_STRING} !(ajax=.*)$
RewriteRule ^(.*)$ index.php?params=$1 [NC]
关于.htaccess - 如何指示 Apache 根据请求的 URL 中的查询变量应用不同的 URL 重写规则?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40300004/