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 に答える