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

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

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

Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
0
0
38
1

Ответы 1

Вот пример .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/

Другие вопросы по теме