Перенаправление на две подпапки в Slim - PullRequest
0 голосов
/ 03 февраля 2019

У меня есть этот код, который перенаправляет www.domain.com в файлы pagina / public:

RewriteCond %{THE_REQUEST} /public/([^\s?]*) [NC]
RewriteRule ^ %1 [L,NE,R=302]
RewriteRule ^((?!public/).*)$ pagina/public/$1 [L,NC]
RewriteRule .* - [env=HTTP_AUTHORIZATION:%{HTTP:Authorization}]

И я хочу, и новое правило, которое перенаправляет, если URL имеет www.domain.com/panelна панель / public

У меня есть две папки на сервере: pagina / и панель / с общей папкой каждая.

Я пробовал с этим:

RewriteCond %{THE_REQUEST} /panel/([^\s?]*) [NC]
RewriteRule ^panel/ %1 [L,NE,R=302]
RewriteRule ^((?!panel/).*)$ panel/$1 [L,NC]
RewriteRule .* - [env=HTTP_AUTHORIZATION:%{HTTP:Authorization}]

Но этоне работает, как я могу это сделать?

Спасибо

ОБНОВЛЕНИЕ # 1

Я изменяю de htaccess:

RewriteEngine On
RewriteCond %{HTTPS} !=on
RewriteRule .* https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
RewriteRule ^(panel) - [L]
RewriteCond %{THE_REQUEST} /public/([^\s?]*) [NC]
RewriteRule ^ %1 [L,NE,R=302]
RewriteRule ^((?!public/).*)$ pagina/public/$1 [L,NC]
RewriteRule .* - [env=HTTP_AUTHORIZATION:%{HTTP:Authorization}]

Так что я позволю себе войти внутрьпанель / папка, но если я использую обычный htaccess Slim в панели / подпапке не работает.Есть идеи?

ОБНОВЛЕНИЕ # 2

Теперь проблема была в Slim, поэтому я добавил это в зависимости, и это работает:)

$container['environment'] = function () {
    $scriptName = $_SERVER['SCRIPT_NAME'];
    $_SERVER['REAL_SCRIPT_NAME'] = $scriptName;
    $_SERVER['SCRIPT_NAME'] = dirname(dirname($scriptName)) . '/' . basename($scriptName);
    return new Slim\Http\Environment($_SERVER);
};
...