Структура сайта:
site/client
site/client/index.php
site/client/.htaccess
site/server
site/server/main.php
site/.htaccess
site / .htaccess директивы:
Options -Indexes
DirectoryIndex disabled
RewriteEngine On
RewriteCond %{SERVER_NAME}%{REQUEST_URI} ^127.0.0.1/site(/.*)
RewriteRule ^ client%1 [END]
директивы site / client / .htaccess:
RewriteEngine On
RewriteCond %{QUERY_STRING} ^action= [OR]
RewriteCond %{QUERY_STRING} &action=
RewriteRule ^ ../server/main.php [END]
RewriteRule ^ index.php [END]
Тогда я перехожу по ссылке http://127.0.0.1/site/
И я получаю ошибку 403 (доступ запрещен).
Часть журнала ошибок Apache:
[rewrite:trace3] [pid 16152:tid 1952] mod_rewrite.c(482): [client 127.0.0.1:53242] 127.0.0.1 - - [127.0.0.1/sid#3ceff50][rid#98c5240/initial] [perdir C:/Users/Public/xampp/htdocs/site/] strip per-dir prefix: C:/Users/Public/xampp/htdocs/site/ ->
[rewrite:trace3] [pid 16152:tid 1952] mod_rewrite.c(482): [client 127.0.0.1:53242] 127.0.0.1 - - [127.0.0.1/sid#3ceff50][rid#98c5240/initial] [perdir C:/Users/Public/xampp/htdocs/site/] applying pattern '^' to uri ''
[rewrite:trace4] [pid 16152:tid 1952] mod_rewrite.c(482): [client 127.0.0.1:53242] 127.0.0.1 - - [127.0.0.1/sid#3ceff50][rid#98c5240/initial] [perdir C:/Users/Public/xampp/htdocs/site/] RewriteCond: input='127.0.0.1/site/' pattern='^127.0.0.1/site(/.*)' => matched
[rewrite:trace2] [pid 16152:tid 1952] mod_rewrite.c(482): [client 127.0.0.1:53242] 127.0.0.1 - - [127.0.0.1/sid#3ceff50][rid#98c5240/initial] [perdir C:/Users/Public/xampp/htdocs/site/] rewrite '' -> 'client/'
[rewrite:trace3] [pid 16152:tid 1952] mod_rewrite.c(482): [client 127.0.0.1:53242] 127.0.0.1 - - [127.0.0.1/sid#3ceff50][rid#98c5240/initial] [perdir C:/Users/Public/xampp/htdocs/site/] add per-dir prefix: client/ -> C:/Users/Public/xampp/htdocs/site/client/
[rewrite:trace8] [pid 16152:tid 1952] mod_rewrite.c(482): [client 127.0.0.1:53242] 127.0.0.1 - - [127.0.0.1/sid#3ceff50][rid#98c5240/initial] [perdir C:/Users/Public/xampp/htdocs/site/] Rule has END flag, no further rewriting for this request
[rewrite:trace2] [pid 16152:tid 1952] mod_rewrite.c(482): [client 127.0.0.1:53242] 127.0.0.1 - - [127.0.0.1/sid#3ceff50][rid#98c5240/initial] [perdir C:/Users/Public/xampp/htdocs/site/] strip document_root prefix: C:/Users/Public/xampp/htdocs/site/client/ -> /site/client/
[rewrite:trace1] [pid 16152:tid 1952] mod_rewrite.c(482): [client 127.0.0.1:53242] 127.0.0.1 - - [127.0.0.1/sid#3ceff50][rid#98c5240/initial] [perdir C:/Users/Public/xampp/htdocs/site/] internal redirect with /site/client/ [INTERNAL REDIRECT]
[rewrite:trace8] [pid 16152:tid 1952] mod_rewrite.c(482): [client 127.0.0.1:53242] 127.0.0.1 - - [127.0.0.1/sid#3ceff50][rid#98b6ef8/initial/redir#1] [perdir C:/Users/Public/xampp/htdocs/site/client/] Declining, no further rewriting due to END flag
[autoindex:error] [pid 16152:tid 1952] [client 127.0.0.1:53242] AH01276: Cannot serve directory C:/Users/Public/xampp/htdocs/site/client/: No matching DirectoryIndex () found, and server-generated directory index forbidden by Options directive
Вопрос
Почему корневая папка обработана успешно, но во вложенной папке есть [autoindex: error]?
Мне нужно обрабатывать папки без индексных файлов, но с файлом .htaccess.
Комментарий
Кроме того, если вы установите индекс каталога «index.php» в папке клиента, то перенаправление будет успешным. Поэтому флаг [END] не влияет на работу mod_rewrite в папке клиента.
Пожалуйста,
- не навязывать другую архитектуру .htaccess.
- не отключать модули и не редактировать другие файлы вне папки сайта. я
нет доступа.
- Наличие строки «DirectoryIndex отключено» обязательно.
Все эти условия необходимы для создания вложенных сайтов друг в друге, где будут папки без индексных файлов, но имеющие файл .htaccess в качестве корневой папки сайта.