У меня есть файл htaccess, куда я перенаправляю каждый http-запрос на https.
http://sample.com/a/b/c -> https://sample.com/a/b/c
Это работает, пока все хорошо. Теперь у меня есть подпапка как поддомен.
htdocs / api доступен через http://api.sample.com/x/y/z
Всякий раз, когда кто-то запрашивает поддомен api, я хочу, чтобы он перенаправлял на https и передавал все в скрипт index.php на api.sample.com, но не перенаправлял его.
http://api.sample.com/path/to/endpoint должен обрабатываться в index.php, но он перенаправляется на https://api.sample.com/index.php, и мой путь исчез.
Это то, что я имею до сих пор.
DirectoryIndex index.php
RewriteEngine On
RewriteCond %{HTTPS} !=on
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [R=301]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{HTTP_HOST} ^api\. [NC]
RewriteRule ^(.*)$ https://%{HTTP_HOST}/index.php [L,QSA]
Пример:
index.php в htdocs / api
$uri = parse_url($_SERVER['REQUEST_URI']);
print $uri['path'];
Я захожу на GET http://api.sample.com/path/to/endpoint и хочу распечатать "/ path / to / endpoint".
Что не так с моим RewriteRule?
Заранее спасибо