У меня есть публичные и частные проекты на моем веб-сервере. Я помещаю все общедоступное в корень веб-сервера, и у меня есть папка private
, доступ к которой я могу получить только из локальной сети (, установленной там с помощью.htaccess ).
Я хочу просто поместить все частные проекты в папку private
и автоматически обрабатывать запросы, но хочу, чтобы URL-адреса выглядели так, как будто они обслуживаются из веб-корня.
Например, если есть private/project1
, я хочу использовать URL-адресhttp://example.com/project1для обслуживания этой папки и не хотите менять URL-адрес.
Это простое переписывание:
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ private/$1
работает, но когда у меня есть private/project2
с другим.htaccess
:
Options +FollowSymLinks
RewriteEngine On
RewriteBase /project2/
Order Deny,Allow
Deny From All
# Allow asset folders through
RewriteRule ^(assets/.+) - [L]
# Protect files from being viewed
RewriteRule ^(uploads.+) - [F,L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/$1 [L]
Options -Indexes
то статический контент появится, но ссылки битые. Что я должен изменить, чтобы работать?
Также, если у меня есть private/project3
и я перехожу к http://example.com/project3/
, проблем нет, но когда я перехожу кhttp://example.com/project3
(без завершающего / )URL-адрес будет отображаться в браузере как http://example.com/private/project3/
. Почему ? Как я могу этого избежать?