0

我有一个 .htaccess 文件:

RewriteEngine On
DirectoryIndex control.php
Options +FollowSymlinks
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule (.+) controller.php?do=$1 [L]

这会重定向所有查询并设置干净的 URL。但是当我使用 ajax 时,它也会重定向。是否可以过滤ajax查询并重定向到

controller-ajax.php?do=$1 [L]

反而?

我试图在controller.php 中捕获它,但X_REQUESTED_WITH不存在。最好的办法是将所有 ajax 请求重定向到另一个脚本,而不是进行额外的脚本检查。

4

1 回答 1

1

当您调用 AJAX 时,将 GET 变量添加到查询中(即添加?ajax=true到查询的末尾)。然后在你的 .htaccess 中有这个:

RewriteEngine On
DirectoryIndex control.php
Options +FollowSymlinks
RewriteBase /

RewriteCond %{REQUEST_FILENAME} -f {OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule .* - [L]

RewriteCond %{QUERY_STRING} ajax.true
RewriteRule (.+) controller-ajax.php?do=$1 [L]

RewriteRule (.+) controller.php?do=$1 [L]
于 2012-05-23T16:14:09.740 回答