首页 > 解决方案 > .htaccess ajax 的特殊规则例外?

问题描述

因此,对 Regex 的经验非常少,对 .htaccess 的经验也很少,我需要问这个:

我想在我的网站上使用 AJAX,但我的 mod 重写配置阻止我正确执行此操作,因为我将所有 url 重定向到我index.php并设置了url $_GET变量,这是我当前的设置:

RewriteEngine On
Options -Indexes
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-l
RewriteRule ^(.+)$ index.php?url=$1 [QSA,L]

现在,如果查询包含“”作为字符串,我希望此规则不会触发&ajax&,至少我总是将“ &ajax&time=...”附加到要加载的 ajax 路径。

所以我认为最简单的方法是检查我是否可以匹配“ajax”并使用[S]kip 或[L]ast 标志来防止其他规则触发,但还没有实现它,有什么帮助吗?有解释或指向一些?

此外,如果这不需要绝对 url 或任何东西,那就太好了,因为我希望它在开发(本地主机)和实时(实际域)环境中都可以工作,而无需相应地更改 .htaccess 文件。

所以

非常感谢任何帮助,谢谢!

标签: phpajax.htaccessurlmod-rewrite

解决方案


htaccess 文件不应重写对有效文件的请求。这是这样说的行:

RewriteCond %{REQUEST_FILENAME} !-f

所以你想要的应该已经发生了,假设 src/file.php 存在于服务器上。


推荐阅读