2016-09-17 3 views
0

Я пытаюсь преобразовать следующий файл HTACCESS в NGINX. Я на сервере Plesk, используя встроенный конвертер через графический интерфейс Plesk, и он, похоже, не работает (продолжает генерировать ошибку из-за переменной SetEnvIf).HTACCESS to NGINX Conversoin

Преобразователи, которые я пробовал, сохраняют переменную SetEnvIf, которая не работает в NGINX. Однако, NGINX использует эквивалент «env», но, когда я ввожу его в графический интерфейс Plesk для настроек NGINX (который, в свою очередь, записывает файл nginx.conf в нашей основной конфигурации сервера), появляется другое сообщение об ошибке, в котором говорится, что мы не можем используйте переменную «env» в этом месте.

Вот файл Htaccess нам нужно преобразовать:

<IfModule mod_setenvif.c> 
    SetEnvIf Authorization .+ HTTP_AUTHORIZATION=$0 
</IfModule> 
<IfModule mod_rewrite.c> 
    Options -MultiViews 
    RewriteEngine On 
    RewriteBase /discuss/api/ 
    RewriteCond %{REQUEST_FILENAME} !-f 
    RewriteCond %{REQUEST_FILENAME} !-d 
    RewriteRule .* index.php [E=HTTP_AUTHORIZATION:%{HTTP:Authorization},L] 
</IfModule> 

Это то, что конвертер и другие, создают:

if (!-f $request_filename){ 
    set $rule_0 1$rule_0; 
} 
if (!-d $request_filename){ 
    set $rule_0 2$rule_0; 
} 
if ($rule_0 = "21"){ 
    setenv HTTP_AUTHORIZATION:$http_authorization; 
    rewrite /.* /index.php last; 
} 

Что мы делаем неправильно (и преобразователи)? ! Заранее спасибо.

ответ

0

context из env является main поэтому он не может быть использован в виртуальном сервере:

env FOO=BAR; // main context 
http { 
    server { 
     // we a here 
    } 
} 

Но вы можете получить доступ к HTTP_AUTHORIZATION и установить переменную среды из PHP кода в index.php:

<?php 
    putenv('HTTP_AUTHORIZATION=' . $_SERVER['HTTP_AUTHORIZATION']); 
+0

I понять, что вы говорите, но это не сработает в нашем случае. Нам нужно преобразовать вышеуказанный HTACCESS в эквивалент NGINX для ввода в конфигурационные файлы NGINX через графический интерфейс Plesk NGINX. Он поддерживает вызовы API IP Board. –