Вы можете сделать, как показано ниже:
RewriteEngine On
RewriteCond %{REQUEST_URI} ^/?MainFolder/SubFolder/?$ [NC]
RewriteRule ^.+$ /MainFolder/SubFolder/adminFolder/dashboard.php/?ir=true [L,QSA]
RewriteCond %{REQUEST_URI} ^/?MainFolder/SubFolder/adminFolder/dashboard.php [NC]
RewriteCond %{QUERY_STRING} !^.*?ir=true.*$
RewriteRule ^.+$ /MainFolder/SubFolder/?ir=true [L,R=301,QSA]
Демо :
В приведенном выше фрагменте, чтобы избежать слишком большого количества перенаправлений, мы передаемпараметр запроса внутри, чтобы убедиться, что мы не заканчиваем цикл. Если мы найдем параметр ir=true
, правило не будет выполнено, и код будет выполнен, иначе он будет работать, как задумано, добавив параметр запроса ir=true
и заставив сервер понять, что вы перенаправлены из самого предыдущего правила перезаписи.
Лучший способ решить эту проблему - избегать разрешения на доступ к каталогу adminFolder
, иметь index.php в Subfolder
и вызывать adminFolder/dashboard.php
, используя require_once () .