2017-02-09 2 views
-1

У меня есть экземпляр Apache , но без PHP (почти все ответы SO, которые я нашел для этого, являются специфичными для PHP). На самом деле это в основном обслуживание статического контента.Как получить значения всех переменных окружения Apache mod_rewrite, без PHP?

Я работаю над некоторыми перенаправлениями mod_rewrite, и мне бы хотелось узнать точные значения всех переменных среды. список

Эти страницы, доступные переменные ENV Apache и пример значения

однако Я хотел бы видеть точные значения исходя из моих запросов, чтобы облегчить работать по моим правилам перезаписи.

Что было бы самым простым способом получить все значения среды Apache? (без установки PHP на нем).

Как отладки бедняка, я знаю, что могу получить значения по одному, определяя некоторый пример переписывает как этот

RewriteRule ^/test.htm http://localhost/test2.htm?SERVER_NAME=%{SERVER_NAME} [R,L,NC] 

, а затем ударяя http://localhost/test.htm и наблюдающей редирект, но это не реально хорошее решение.

Есть ли лучший способ узнать обо всех средах, а не конкретных для какого-либо конкретного языка, например PHP?

+0

Существует множество языков, которые могут взаимодействовать с переменными среды Apache и чтения; необязательно использовать PHP. Но вы должны быть в состоянии * выполнить * что-то, потому что сам Apache не просто счастливо сообщает об окружающей среде внешнему миру. (Возможно, [возможно, это возможно] (https://httpd.apache.org/docs/2.4/mod/mod_info.html), я не могу проверить прямо сейчас, потому что он отказывается работать на моем компьютере.) –

+0

mod_info выглядит многообещающим, Я проверю это! –

ответ

1

Вы можете получить значения всех переменных окружения Apache с помощью Perl. Стандартный дистрибутив Apache по-прежнему связывает старый старый printenv.pl CGI-скрипт. Вот что мое (Apache/2.4 на Windows) выглядит следующим образом:

#!D:/programs/perl/bin/perl.exe 
# 

# To permit this cgi, replace # on the first line above with the 
# appropriate #!/path/to/perl shebang, and on Unix/Linux also 
# set this script executable with chmod 755. 
# 
# ***** !!! WARNING !!! ***** 
# This script echoes the server environment variables and therefore 
# leaks information - so NEVER use it in a live server environment! 
# It is provided only for testing purpose. 
# Also note that it is subject to cross site scripting attacks on 
# MS IE and any other browser which fails to honor RFC2616. 

## 
## printenv -- demo CGI program which just prints its environment 
## 
use strict; 
use warnings; 

print "Content-type: text/plain; charset=iso-8859-1\n\n"; 
foreach my $var (sort(keys(%ENV))) { 
    my $val = $ENV{$var}; 
    $val =~ s|\n|\\n|g; 
    $val =~ s|"|\\"|g; 
    print "${var}=\"${val}\"\n"; 
} 

Конечно:

  • Вы должны установлен Perl
  • администратор
  • Apache обычно не включить/CGI-BIN каталога по умолчанию

Другое, что с помощью программы вам не повезло. Я не знаю ни одного встроенного модуля Apache, который сообщает переменные ENV (даже не mod_info).

Смежные вопросы