П О Р Т А Л                            
С Е Т Е В Ы Х                          
П Р О Е К Т О В                        
  
                                                 
Главная

О проекте

Web-мастеру
     HTML & JavaScript
     SSI
     Perl
     PHP
     XML & XSLT
     Unix Shell

MySQL

Безопасность

Хостинг

Другое







Самое читаемое:

Учебник PHP - "Для Чайника".
Просмотров 91769 раз(а).

Иллюстрированный самоучитель по созданию сайтов.
Просмотров 28156 раз(а).

Учебник HTML.
Просмотров 54669 раз(а).

Руководство по PHP5.
Просмотров 25061 раз(а).

Хостинг через призму DNS.
Просмотров 29339 раз(а).

Подборка текстов стандартных документов.
Просмотров 28110 раз(а).

Учебник PHP - Самоучитель
Просмотров 32378 раз(а).

Документация на MySQL (учебник & справочное руководство)
Просмотров 34099 раз(а).

Внешние атаки...
Просмотров 26097 раз(а).

Учебник PHP.
Просмотров 22000 раз(а).

SSI в примерах.
Просмотров 17304 раз(а).



 
 



Руководство по URL преобразованиям
Работа с URL

Внешний редирект

Описание:

Иногда нам нужно больше контроля над URL (касаемо механизма обрезания символов) при преобразованиях. Обычно обрезающие функции URL ядра Apache также убирают и якоря, т.е. в URL вида «url#anchor». Вы не можете это непосредственно использовать при редиректах с mod_rewrite потому что функция Apache uri_escape() также обрезала бы срезаемый символ. Как мы можем сделать редирект такому URL?

Решение:

Мы должны использовать ляп в программе используя NPH-CGI скрипт который делает редирект на себя самого. Потому что здесь не делается обрезание (NPH=non-parseable headers). Сначала мы вводим новую URL scheme xredirect: в следующей строке конфигурационного файла сервера (должно быть одной из последних директив):

RewriteRule ^xredirect:(.+) /path/to/nph-xredirect.cgi/$1 \
            [T=application/x-httpd-cgi,L]

Это направляет все URL начинающиеся с xredirect: через программу nph-xredirect.cgi. И эта программа выглядит примерно так:

#!/path/to/perl
##
##  nph-xredirect.cgi -- NPH/CGI script for extended redirects
##  Copyright (c) 1997 Ralf S. Engelschall, All Rights Reserved.
##

$| = 1;
$url = $ENV{'PATH_INFO'};

print "HTTP/1.0 302 Moved Temporarily\n";
print "Server: $ENV{'SERVER_SOFTWARE'}\n";
print "Location: $url\n";
print "Content-type: text/html\n";
print "\n";
print "<html>\n";
print "<head>\n";
print "<title>302 Moved Temporarily (EXTENDED)</title>\n";
print "</head>\n";
print "<body>\n";
print "<h1>Moved Temporarily (EXTENDED)</h1>\n";
print "The document has moved <a HREF=\"$url\">here</a>.<p>\n";
print "</body>\n";
print "</html>\n";

##EOF##

Это предоставляет вам функции для того чтобы делать перенаправления на все URL schemes, т.е. включая те, которые, не прямо принимаются mod_rewrite. Для примера вы можете сейчас также перенаправить news:newsgroup через

RewriteRule ^anyurl  xredirect:news:newsgroup
Замечание: Вы не должны использовать [R] или [R,L] в вышеприведенной директиве потому что xredirect: позже, должен быть продолжен нашим специальным правилом «pipe through» которое приведено выше.



[ Назад ] [ Содержание ] [ Вперед ]



 





Copyright © 2005-2011 Project.Net.Ru


Брус, Фанера, Доски всех размеров - дома из клееного бруса.