.htaccess в корневой папке и каждый перенаправить в собственный индекс.РНР
Я прошу прощения за, казалось бы, дублирующий вопрос, но ни один из десятков я смотрел на самом деле не было той же проблемы.
у меня есть следующая структура каталогов:
/.htaccess
/index.php
/subfolder/.htaccess
/subfolder/index.php
я хотел бы, чтобы все запросы на страницы обрабатывались /index.php
, если запрос начинается /subfolder
в этом случае он должен быть обработан /subfolder/index.php
- например
/abc
переписать на/index.php?u=abc
- например
/subfolder/def
переписать к/subfolder/index.php?u=def
Я хожу по кругу, так что любая помощь будет массово оценили.
EDIT: забыл упомянуть о проблеме!
Запросы в подпапке обрабатываются корневым каталогом index.php
, а не подпапка. (Кроме запросов на /subfolder
)
текущее содержимое файла
/.htaccess
Options -Indexes -MultiViews +FollowSymLinks
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_URI} !^/admin
RewriteRule ^(.*)$ /index.php?u= [NC,QSA]
/subfolder/.htaccess
RewriteBase /admin/
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ /admin/index.php?u= [NC,QSA]
2 ответов
иметь свой корень .или такой:
Options -Indexes -MultiViews +FollowSymLinks
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(?!admin/)(.+)$ /index.php?u= [NC,QSA,L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^admin/(.+)$ /admin/index.php?u= [NC,QSA,L]
нет необходимости иметь .htaccess в папке Admin для этого простого требования.
эта строка корневой папки .реврайт:
RewriteRule ^(.*)$ /index.php?u= [NC,QSA]
вызывает перенаправление всех запросов на несуществующие пути к файлам в корневую папку index.php
. Вот в чем проблема.
Одним из возможных решений может быть замена вышеуказанной строки этой парой строк:
RewriteRule ^subfolder/(.*)$ /subfolder/index.php?u= [L,NC,QSA]
RewriteRule ^(.+)$ /index.php?u= [L,NC,QSA]
добавить L
(последний) флаг и написание правил в этом порядке вы получите Apache для правильного перенаправления ваших запросов и устранения необходимости перезаписи директив в /subfolder/.htaccess
.