@matsesh

Как исключить допуск пользователя на /public?

Сабж.
index.php находится в каталоге /public/
в корне сайта и в /public/ лежат htaccess

Проблем никаких нет, все работает. НО! Если переходить на сайт без указания https, т.е. просто сайт.com - в строку браузера выдает сайт.com/public. так же система позволяет перейти и по сайт.com/public и по сайт.com/public/index.php. я бы хотел это исключить - возвращая с этих страниц URL сайт.com/

.htaccess в корне
RewriteEngine On
RewriteRule ^(.*)$ public/$1 [L]


.htaccess в /public/
RewriteEngine On
Options -Indexes
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-l
RewriteRule ^(.+)$ index.php?url=$1 [QSA,L]
RewriteCond %{SERVER_PORT} !^443$
RewriteRule .* https://%{SERVER_NAME}%{REQUEST_URI} [R=301,L]
  • Вопрос задан
  • 26 просмотров
Решения вопроса 1
@dodo512
/.htaccess
DirectorySlash off

RewriteEngine On
RewriteRule ^(.*)$ public/$1 [L]


/public/.htaccess
RewriteEngine On
Options -Indexes

RewriteCond %{THE_REQUEST} " /(public/|index\.php)" [OR]
RewriteCond %{SERVER_PORT} !^443$ [OR]
RewriteCond %{HTTP_HOST}   ^www\. [NC]
RewriteRule ^index\.php|(.*) https://site.com/$1 [R=301,L]

RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-l
RewriteRule ^(.+)$ index.php?url=$1 [QSA,L]
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы