1

したがって、ドメイン「system.com」で実行されているシステムにAPIがあり、APIは「api.system.com」で実行されますが、同じサーバーでホストされています。

私の .htaccess の目的は、「api.system.com」を含むすべての呼び出しを api フォルダーにリダイレクトし、他のすべての呼び出しをメイン サイトにリダイレクトすることです。

特定の api が要求されていない場合 (REQUEST URI が空である場合)、api/apidocs.php にリダイレクトして apidoc を表示する必要があります。

問題は、有効な URL にアクセスしても、api/apidocs.php にリダイレクトされることです。

アクセスコード:

RewriteEngine On
RewriteCond %{HTTP_HOST} ^api.system.com
RewriteCond %{REQUEST_URI} json
RewriteRule (.+)\.json$ api/$1.php?type=json [QSA,L]

RewriteCond %{HTTP_HOST} ^api.system.com
RewriteCond %{REQUEST_URI} xml
RewriteRule (.+)\.xml$ api/$1.php?type=xml [QSA,L]

RewriteCond %{HTTP_HOST} ^api.system.com
RewriteCond %{REQUEST_URI} /
RewriteRule ^(.+)$ api/apidocs.php [L]

RewriteCond %{HTTP_HOST} ^system.com
RewriteRule ^(.+)$ index.php [QSA,L]

http://htaccess.madewithlove.be/を使用してテストしましたが、コードは機能します。

api/apidocs.php で $_SERVER 変数を出力しようとしたところ、次の (奇妙な) 変数が得られました。

[SCRIPT_FILENAME] => C:/wamp/www/mysite/api/apidocs.php
[REDIRECT_QUERY_STRING] => type=json
[REDIRECT_URL] => /api/login.php

redirect_url と script_filename が同じにならないのはなぜですか?

4

1 に答える 1