ファイルに問題があり.htaccess
ます。それは私のページを介してすべてをリダイレクトしていindex.php
ます。これは、ほとんどのリクエストに必要なものです。
しかし、リダイレクトしたくないのは、AJAX 呼び出しを介したときだけです。
index.php
次のように、ファイルを介してリクエストをリダイレクトします。
RewriteRule /.* /index.php [NC,L]
AJAX リクエストの URL は次のとおりです。
http://myurl.dev/login/ajax/functions.php
ディレクトリ構造:
/modules/login/ajax/functions.php
私は正規表現とRewriteRulesの経験がなく、さまざまなロジックで多くのバリエーションを読んだり試したりしましたが、/ajax/から何も止めてインデックスページにリダイレクトしないようにすることはできません。
/ajax/を除き、Index RewriteRule の前に RewriteCond を試して index にリダイレクトしようとしましたが、うまくいきませんでした。
Rewrite Cond %{REQUEST_URI} !(.*)/ajax
RewriteRule /.* /index.php [NC,L]
/ajax/ リクエストに対して別の RewriteRule も試しました。
RewriteRule ^(.*)/ajax/functions\.php$ /modules/$1/ajax/functions.php [NC,L]
したがって、これまでのところ何も機能していません。にリダイレクトするか、にindex
ヒットし500 server error
ます。
誰かに役立つ提案やリンクはありますか? ありがとう。
注: リダイレクトと言うとき、Apache は[R]フラグなしでは完全な URL 更新を行わないことを知っているので、ページ全体の更新を意味するわけではありません。
-- 編集: 作業ファイル --
ここに私の完全な .htaccess コードがあります:
Options +FollowSymLinks
RewriteEngine on
# Intercept any requests to the core, and keep them being written to the core (so they don't go to index.php)
RewriteRule ^core/(.*)$ core/$1 [NC,L]
# The magic, stops any requests to a file for being redirected.
# needed to be under the /core/ redirect
RewriteCond %{SCRIPT_FILENAME} !-f
# Rewrite all requests to index.php.
RewriteRule /.* /index.php [NC,L]
# Some requests (without trailing slashes) can fall through the above rule. This bit catches those stragglers.
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_URI} !(.*)/$
RewriteRule ^(.*)$ /$1/ [L,R=301]
ErrorDocument 404 /404/