Общие правила перезаписи .htaccess для нескольких конфигураций каталогов сервера - PullRequest
0 голосов
/ 13 апреля 2019

На моем локальном веб-сервере разработки есть следующая структура каталогов:

/www
    /f3-app-1
        /application
        /config
        /core
        /resources
        /ui
        /index.php
    /f3-app-2
        ...
    /f3-app-3
        ...

Я храню все свои веб-приложения (f3-app-1, f3-app-2, ...) в подпапках корня документа. Я получаю доступ к приложению с помощью http://localhost/f3-app-1/ и не использую виртуальные хосты.

Мне нужно перенаправить все (кроме файлов в ui и resources) в index.php. Для этого я использую что-то вроде следующего в файле .htaccess:

Options -Indexes
RewriteEngine On

RewriteCond %{REQUEST_URI} \.ini$
RewriteRule \.ini$ - [R=404]

RewriteCond %{REQUEST_URI} !^/f3-app-1/ui/
RewriteCond %{REQUEST_URI} !^/f3-app-1/resources/
RewriteRule .* index.php [L,QSA]

Рабочий сервер моего хостинг-провайдера использует виртуальные хосты для разрешения нескольких веб-сайтов. После передачи файлов на их веб-сервер мне нужно изменить файл .htaccess на что-то вроде:

...
RewriteCond %{REQUEST_URI} !^/ui/
RewriteCond %{REQUEST_URI} !^/resources/
RewriteRule .* index.php [L,QSA]

Есть ли способ заставить эти правила mod_rewrite работать относительно веб-приложения или каталога .htaccess?

1 Ответ

1 голос
/ 15 апреля 2019

Вы можете сделать /f3-app-1 необязательным:

RewriteCond %{REQUEST_URI} !^(/f3-app-1)*/ui/
RewriteCond %{REQUEST_URI} !^(/f3-app-1)*/resources/

Но это плохая практика.

Правильный способ сделать это - иметь виртуальные хосты в вашей среде разработки.Это решит эту и любую другую проблему, связанную с путями в целом.

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