RewriteRule для подпапки - PullRequest
       16

RewriteRule для подпапки

0 голосов
/ 31 октября 2018

У меня есть файл 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?

Заранее спасибо

1 Ответ

0 голосов
/ 31 октября 2018

Вот пример .htaccess

<IfModule mod_rewrite.c>
RewriteEngine on
 # To append a query string part in the substitution string
RewriteRule ^([0-9a-z_/\-]+)/$ index.php\?p=$1 [QSA]
RewriteRule ^([0-9a-z_/\-]+)$ index.php\?p=$1 [QSA]

php_flag allow_url_include on
</IfModule>

Вот мой index.php и чтение файла из подпапки

session_start();
if (isset($_GET['p'])) {
    if (isset($_GET['p'])) {
        $request=explode('/',$_GET['p']);
        include 'subfolder/'.$request[0].'.php';
    }
}
else {
    include 'subfolder/default.php';
}

Где подпапка / - имя вашей папки

Вот образцы сайта я разбираю https://andre.cloudmanado.store/

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...