Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Администрирование Web серверов и Web служб > .htaccess rewrite или redirect на корень


Автор: Golda 15.2.2008, 14:28
Решаю средствами .htaccess следующую задачу. Все запросы в пределах хоста, кроме заданного набора расширений файлов перенаправляются mod_rewrite-ом на один скрипт index.php

Код

RewriteRule !\.(js|css|ico|gif|jpg|png|php)  index.php


Реально под этим корнем есть только один файл с расширением php. А именно этот самый index.php. Есть еще файлы с расширением inc.php, но доступ к ним перекрываю

Код

<Files ~ "\.inc\.php$">
    Deny from all
</Files>


Типичное обращение к сайту происходит к URL типа

http://myhost.com
http://myhost.com/module1
http://myhost,com/module2
http://myhost.com/module2/action

И движок рассчитан на разбор подобных URL.

Но у пользователя остается возможность обратиться напрямую

http://myhost.com/index.php

Самый простой вариант обработать это исключение - на уровне php отсылать в таком случае пользователю редирект на корень сайта. Вопрос, собственно. Могу ли я не поднимать лишний раз PHP, а перекинуть пользователя на корень средствами .htaccess ?

Пока все попытки учесть в RewriteRule index.php оборачиваются зацикливанием и Internal Server Error

Автор: Сумасшедший 15.2.2008, 15:04
Golda, что мешает переименовать index.php во что-либо наподобии bla_bla_bla_eto_index_pohape.php, немного поменять RewriteRule и сделать RewriteRule ^$ /bla_bla_bla_eto_index_pohape.php - и пусть пробуют угадать имя файла. А в скриптах оно просто не должно нигде случайно выдаваться.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)