JhaoDa
@JhaoDa
LaravelRUS Team

.htaccess без index.php

Встала задача перенаправить все запросы от корневого каталога в подкаталог.
В корень /www/example.com помещаю .htaccess с содержимым:
Options +FollowSymLinks -MultiViews -Indexes
RewriteEngine on
RewriteRule . app/index.php [QSA]

Должно перенаправлять всё на /www/example.com/app/index.php.
Но не перенавлявляет, пока не положишь в /www/example.com пустой index.php, иначе ошибка
AH01276: No matching DirectoryIndex (index.php,index.html) found, and server-generated directory index forbidden by Options directive
либо если убрать -Indexes, то
AH01630: client denied by server configuration: /www/example.com/.htaccess

Гугл подсказывает, что это лечится через что-то типа
<Directory "%hostdir%">
 AllowOverride all
 Require all granted
</Directory>
Но это обычный виртуальный хостинг, доступа к httpd-vhost нет.

Вопрос: как обойтись без пустого index.php? Он, конечно, каши не просит, но глаза мозолит.
  • Вопрос задан
  • 13863 просмотра
Решения вопроса 1
truekenny
@truekenny
<IfModule mod_rewrite.c>
    RewriteEngine on
    RewriteRule  ^$ public/    [L]
    RewriteRule  (.*) public/$1 [L]
</IfModule>

В корень запрос пустой. А у вас «точка» – 1 любой символ.
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
BuriK666
@BuriK666
Компьютерный псих
DirectoryIndex disabled
Ответ написан
@LAA
Вот чем отличается:
A single argument of «disabled» prevents mod_dir from searching for an index. An argument of «disabled» will be interpreted literally if it has any arguments before or after it, even if they are «disabled» as well.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Похожие вопросы