.htaccess - 如何指示 Apache 根据请求的 URL 中的查询变量应用不同的 URL 重写规则?

标签 .htaccess

我在 .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/

相关文章:

.htaccess - RewriteRule 给我的正则表达式带来问题

php - 如何使用 .htaccess 重写 example.com/catelogue.php?page=3&cat1=fruit&cat2=apple

php - CodeIgniter - 重定向子域设置为 "controllers"中的文件夹

image - 用于图像 htaccess 问题的 wordpress 子域

regex - htaccess 将所有图像重定向到不同的位置并将图像名称放入新的 url

apache - 使用 mod_rewrite,如何强制路径和查询字符串全部小写?

WordPress Woocommerce 网站 : Force SSL on Account page causes Internal Server Error

php - 如何在不需要身份验证时从 URL 检索尝试的 $_SERVER ['REMOTE_USER' ]

linux - 在APACHE中的哪个.htaccess文件中(OS : Linux centos) server do i need to update

.htaccess - 启用缓存 Google PageSpeed