.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 .