Установка корня документа с использованием .htaccess без дублирования - PullRequest
0 голосов
/ 27 июня 2019

У меня есть веб-проект, где у меня есть каталог public, который содержит index.php, .htaccess и некоторые css, js, значки, изображения и т. Д. Каждый раз, когда приходил новый клиент, мне приходилось устанавливать Document-Root в публичный каталог, но это иногда проблематично. В любом случае, я решил убрать необходимость установить Document-Root в публичный каталог и вместо этого добавить еще один .htaccess в корневой каталог проекта и перенаправить весь трафик на public/index.php. Но я не могу найти решение, потому что каждый сайт дублируется до двух URL. Например. https://example.com/articles и https://example.com/public/articles - это одна и та же страница.

Я перепробовал много решений, которые нашел в Интернете, но ни одно из них не решило мою проблему. Я попытался добавить еще один index.php в корневой каталог и включить в него public / index.php, но безуспешно.

В .htaccess в моем корневом каталоге у меня есть следующее содержимое:

RewriteEngine on
RewriteCond ^(.*)$ public%{REQUEST_URI} [L,NC,QSA]

И в моем .htaccess в публичном каталоге у меня есть:

Options -MultiViews -Indexes
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ index.php [L]

Мне нужно сделать так, чтобы https://example.com/articles и https://example.com/public/articles были двумя разными сайтами. Но в то же время я не хочу ломать уже существующие веб-сайты, для которых Document-Root установлен в публичный каталог.

И у этой конфигурации есть еще один недостаток - в корневом каталоге проекта у меня есть каталог src, и когда я перехожу на https://example.com/src, меня перенаправляют на https://example.com/public/src. Но это не то, что я хочу - мне нужно, чтобы он оставался на https://example.com/src и пытался загрузить страницу с URL src.

Есть ли способ сделать это? Спасибо за советы.

...