У меня есть веб-проект, где у меня есть каталог 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
.
Есть ли способ сделать это? Спасибо за советы.