Я пробовал так много всего, но пока не получилось:
У меня есть веб-пространство, где я могу работать с файлами .htaccess. У меня есть интерфейс Angular и серверная часть PHP, написанные с использованием фреймворка Symfony.
Папки:
/[frontend]
/api/[backend]
/api/public/
Файлы:
/.htaccess(1)
/index.html (точка входа Angular)
/api/.htaccess(2)
/api/public.htaccess(3)
/api/public.index.php(точка входа Symfony)
Я не могу решить, где мне следует разместить файлы .htaccess, чтобы все это работало.
Список URL-адресов с примерами, где они должны быть точка:
myweb.com/ -> отобразить index.html (работает)
myweb.com/about -> перенаправление на index.html, и angular будет обрабатывать дополнительный путь (работает)
myweb.com/api -> перенаправление на /api/public/index.php (не работает, ошибка 403)
myweb.com/api/brand/new -> перенаправить на /api/public/index.php, и symfony будет обрабатывать подпути после /api/ (полуработает, ничего не находит по этому API, но обрабатывается index.php)
myweb.com/api/public/brand/new -> это работает, но я не хочу, чтобы в URL-адресе была общедоступная информация.
Я не хочу, чтобы /public/ появлялся в URL-адресе.
Есть такое созвездие вообще возможно?
У меня Angular работает с этим в .htaccess (1)
RewriteEngine On
RewriteCond %{REQUEST_URI} ^/api/ [NC]
RewriteRule ^ - [L]
RewriteCond %{REQUEST_FILENAME} -f [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^ - [L]
RewriteRule ^ /index.html [L]
Symfony предоставляет этот файл «.htaccess (3)». Это отлично работает, если у Symfony есть собственный URL-адрес и он расположен в корневом каталоге, а у меня есть файл .htaccess(2) в корневом каталоге.
.htaccess (3)
Options -MultiViews
Options +SymLinksIfOwnerMatch
RewriteEngine On
RewriteCond %{REQUEST_URI}::$0 ^(/.+)/(.*)::\2$
RewriteRule .* - [E=BASE:%1]
RewriteCond %{HTTP:Authorization} .+
RewriteRule ^ - [E=HTTP_AUTHORIZATION:%0]
RewriteCond %{ENV:REDIRECT_STATUS} =""
RewriteRule ^index\.php(?:/(.*)|$) %{ENV:BASE}/$1 [R=301,L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ %{ENV:BASE}/index.php [L]
RedirectMatch 307 ^/$ /index.php/
.htaccess (2)
RewriteEngine On
RewriteBase /api/
RewriteCond %{REQUEST_FILENAME} -f [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^ - [L]
RewriteRule ^(.*)$ /api/public/index.php [L]
Подробнее здесь: https://stackoverflow.com/questions/791 ... e-base-uri
Перенаправления Frontend и Backend .htaccess с одним Base-URI ⇐ Apache
-
Anonymous
1730063074
Anonymous
Я пробовал так много всего, но пока не получилось:
У меня есть веб-пространство, где я могу работать с файлами .htaccess. У меня есть интерфейс Angular и серверная часть PHP, написанные с использованием фреймворка Symfony.
Папки:
/[frontend]
/api/[backend]
/api/public/
Файлы:
/.htaccess(1)
/index.html (точка входа Angular)
/api/.htaccess(2)
/api/public.htaccess(3)
/api/public.index.php(точка входа Symfony)
Я не могу решить, где мне следует разместить файлы .htaccess, чтобы все это работало.
Список URL-адресов с примерами, где они должны быть точка:
myweb.com/ -> отобразить index.html (работает)
myweb.com/about -> перенаправление на index.html, и angular будет обрабатывать дополнительный путь (работает)
myweb.com/api -> перенаправление на /api/public/index.php (не работает, ошибка 403)
myweb.com/api/brand/new -> перенаправить на /api/public/index.php, и symfony будет обрабатывать подпути после /api/ (полуработает, ничего не находит по этому API, но обрабатывается index.php)
myweb.com/api/public/brand/new -> это работает, но я не хочу, чтобы в URL-адресе была общедоступная информация.
Я не хочу, чтобы /public/ появлялся в URL-адресе.
Есть такое созвездие вообще возможно?
У меня Angular работает с этим в .htaccess (1)
RewriteEngine On
RewriteCond %{REQUEST_URI} ^/api/ [NC]
RewriteRule ^ - [L]
RewriteCond %{REQUEST_FILENAME} -f [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^ - [L]
RewriteRule ^ /index.html [L]
Symfony предоставляет этот файл «.htaccess (3)». Это отлично работает, если у Symfony есть собственный URL-адрес и он расположен в корневом каталоге, а у меня есть файл .htaccess(2) в корневом каталоге.
.htaccess (3)
Options -MultiViews
Options +SymLinksIfOwnerMatch
RewriteEngine On
RewriteCond %{REQUEST_URI}::$0 ^(/.+)/(.*)::\2$
RewriteRule .* - [E=BASE:%1]
RewriteCond %{HTTP:Authorization} .+
RewriteRule ^ - [E=HTTP_AUTHORIZATION:%0]
RewriteCond %{ENV:REDIRECT_STATUS} =""
RewriteRule ^index\.php(?:/(.*)|$) %{ENV:BASE}/$1 [R=301,L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ %{ENV:BASE}/index.php [L]
RedirectMatch 307 ^/$ /index.php/
.htaccess (2)
RewriteEngine On
RewriteBase /api/
RewriteCond %{REQUEST_FILENAME} -f [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^ - [L]
RewriteRule ^(.*)$ /api/public/index.php [L]
Подробнее здесь: [url]https://stackoverflow.com/questions/79131484/frontend-backend-htaccess-redirects-with-a-single-base-uri[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия