htaccess переписать в каталог по умолчанию - PullRequest
1 голос
/ 20 сентября 2011

Я застрял в ситуации с htaccess - ни одно из предыдущих решений в стеке не помогло мне, поэтому я пишу новое. Вот проблема:

Я хочу, чтобы все запросы просматривались в http://www.example.com/folder/public_html/ по умолчанию, и если запрошенный ресурс не существует в этой папке, запрос должен быть перенаправлен на http://www.example.com/index.php

Пример: Я размещаю запрос на http://www.example.com/example.php, поэтому по умолчанию сервер должен посмотреть на /folder/public_html/example.php, а если файла там нет, то он должен быть перенаправлен через индексный файл в корень сайта, т.е. /index.php?request=example.php

Пожалуйста, помогите, я сильно застрял

1 Ответ

1 голос
/ 20 сентября 2011

Создайте .htaccess с этим правилом в каталоге http://www.example.com/

RewriteEngine on
RewriteRule ^(.*)$ /folder/public_html/$1 [L]

И .htaccess с этим в http://www.example.com/folder/public_html/

RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ /index.php?request=$1 [R]

(Если вы хотите показать только /index.php?request=example.php, но не хотите, чтобы браузер перенаправлял, используйте [L] вместо [R])

Edit:

Если вы хотите перенаправить в /folder/public_html/file.php, если файл существует , добавьте эти строки во второй .htaccess:

RewriteCond %{REQUEST_FILENAME} -f
RewriteRule ^(.*)$ $1 [R]

По умолчанию файл /folder/public_html/file.php отображается, если он существует из-за правила перезаписи в первом .htaccess, но браузер не перенаправляет .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...