Apache и переписать / перенаправить в htaccess в другую папку - PullRequest
2 голосов
/ 07 января 2012

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

Я на локальном хосте (сервер apache), а домашний сервер по умолчанию находится в / var / www. Существует папка project с несколькими подпапками, одна из которых называется web с файлом index.php. Так что теперь, если я хочу перейти к индексу, мне нужно использовать полный URL localhost / project / web /.

Я хочу сделать это лучше, чтобы, если вы переходите на localhost / project, вы либо перенаправлялись на localhost / project / web /, либо URL оставался прежним, но он работал (извините за эту наивную формулировку).

В .htaccess я изменил индекс каталога, но тогда все ссылки (поскольку они являются относительными) не работали.

Я попробовал это .htaccess в / var / www / project:

RedirectMatch permanent ^/$ ./web/
<Files .htaccess>
order allow,deny
deny from all
</Files>
Options -Indexes

Но это не работает, переход к localhost / project пытается перечислить каталог проекта (это не разрешено из-за опций -Indexes, что я и хотел). Мне нужно, чтобы он был независимым от 'localhost' в URL, потому что он должен работать где угодно (если разрешен .htaccess)

Спасибо за любой совет

1 Ответ

0 голосов
/ 07 января 2012

RedirectMatch не имеет базы, как у mod_rewrite.Даже если он находится в файле htaccess в каталоге / project, вам нужен полный URI:

RedirectMatch permanent ^/project/$ /project/web/

Если вы хотите, чтобы он перешел в /project/web/index.php без Переадресация браузера (то есть адрес в строке URL в браузере остается на localhost / project /), вам нужно внутренне переписать URI с помощью mod_rewrite:

RewriteEngine On
RewriteRule ^$ web/index.php [L]

Обратите внимание, что mod_rewrite использует базовый URI, который используется htaccessфайл находится в (но префикс или косая черта удалены).

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