Смена корневой папки через .htaccess - PullRequest
11 голосов
/ 26 апреля 2011

У меня есть учетная запись общего хостинга, связанная с именем домена, и корневая папка (поправьте меня, если это неправильный термин) установлена ​​на /, так что все файлы на сервере общедоступны / доступны через браузер.

Могу ли я использовать .htaccess или что-то, чтобы изменить корневую папку на что-то вроде /example.com/public/?

Ответы [ 4 ]

27 голосов
/ 26 апреля 2011

Если я правильно понимаю, следующее должно работать

RewriteEngine On

RewriteCond %{REQUEST_URI} !^/public/
RewriteRule ^(.*)$ /public/$1 [L,R=301]

Это перенаправит все запросы, которые не начинаются с /public/, на URL, который делает.

Надеюсь, это поможет.

7 голосов
/ 26 апреля 2011

Директива DocumentRoot не может быть установлена ​​в файле .htaccess, только в конфигурации сервера. Поскольку у вас, скорее всего, нет прав на изменение настроек сервера, ваше единственное решение - использовать магию перезаписи, как уже упоминалось clmarquart .

6 голосов
/ 28 апреля 2011

Вот как я всегда использую его в своих рамках:

Rewritecond %{REQUEST_FILENAME} !-f
RewriteRule (.*) /example.com/public/$1 [L,NC]  

RewriteCond %{REQUEST_URI}  ^/$
RewriteRule !^example.com/public/(.*) /example.com/public/$1 [L,NC]
1 голос
/ 25 марта 2017

Я использую bluehost ... вот что у меня работает: Это полезно, когда вы используете общий хостинг и имеете несколько доменных имен.

Ваш основной домен настроен на public_html, но ваши дополнительные домены являются подпапками внутри public_html

Это позволяет избежать смешивания всех файлов основного имени домена с дополнительными папками домена ... каждый домен может находиться в отдельной папке ...

RewriteEngine on 
RewriteCond %{HTTP_HOST} ^(www.)?PUTYOURDOMAINNAMEHERE.com$ 
RewriteCond %{REQUEST_URI} !^/PUTYOURFOLDERHERE/ 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^(.*)$ /PUTYOURFOLDERHERE/$1  
RewriteCond %{HTTP_HOST} ^(www.)?PUTYOURDOMAINNAMEHERE.com$ 
RewriteRule ^(/)?$ PUTYOURFOLDERHERE/ [L]
Options +SymLinksIfOwnerMatch
...