The OpenNET Project / Index page

[ новости /+++ | форум | wiki | теги | ]

Редирект, mod_rewrite

   Корень / Администратору / Сетевые сервисы / WWW, Apache httpd / Редирект, mod_rewrite

----* Организация доступа к SSH и HTTPS через один 443 порт при помощи nginx (доп. ссылка 1)   [комментарии]
  В nginx 1.15.2 в модуль ngx_stream_ssl_preread была добавлена переменная $ssl_preread_protocol, которая определяет наибольшую версию протокола SSL/TLS, которую поддерживает клиент. При помощи новой переменной можно создавать конфигурации для доступа с использованием различных протоколов через один сетевой порт при проксировании трафика с использованием модулей http и stream. В частности, можно разделять обработчики для трафика на базе SSL и не использующего SSL (например, SSH).
...
[Слишком большой объем текста. Скрыт. Для просмотра см. продолжение
]
 
----* Перенаправление на HTTPS при помощи HSTS в Apache, NGINX и Lighttpd (доп. ссылка 1)   [комментарии]
  Протокол HSTS (HTTP Strict Transport Security) позволяет администратору сайта указать на необходимость обращения только по HTTPS и автоматизировать проброс на HTTPS при изначальном обращении по ссылке на HTTP. Управление производится при помощи HTTP-заголовка Strict-Transport-Security, который выдаётся при обращении по HTTPS (при выдаче по HTTP заголовок игнорируется) и указывает браузеру на необходимость оставаться в зоне HTTPS даже при переходе по ссылкам "http://". Замена http:// на https:// будет автоматически выполняться при обращении к защищаемому ресурсу с внешних сайтов, а не только для внутренних ссылок.
...
[Слишком большой объем текста. Скрыт. Для просмотра см. продолжение
]
 
----* Запуск qdPM под управлением nginx через php-fpm (доп. ссылка 1)   Автор: viking-coyote  [комментарии]
 
Для использование системы управления проектами qdPM совместно с nginx можно
использовать следующие настройки:


   root /путь/до/qdpm;
   location / {
            index index.php;
            allow <разрешаем коекому>;
            deny all;
}
   
   location ~ ^(.+\\.php)(.*)$ {
            fastcgi_pass   unix:/tmp/php-fpm.socket;
            fastcgi_split_path_info       ^(.+\\.php)(.*)$;
            fastcgi_param  SCRIPT_FILENAME $document_root/index.php; 
            fastcgi_param  QUERY_STRING $query_string;
            include        fastcgi_params;
}
 
----* Автоматическое реплицирование статики между несколькими web серверами средствами nginx   Автор: Gara  [комментарии]
  На нескольких серверах время от времени появляется новые файлы, при этом заранее не известно на каком именно сервере появится новый файл. Клиенты в случайном порядке попадают на все серверы.
...
[Слишком большой объем текста. Скрыт. Для просмотра см. продолжение
]
 
----* Организация в Lighttpd переброса на страницу в зависимости от языка пользователя (доп. ссылка 1)   [обсудить]
  Для организации редиректа на определенную страницу с учетом выбранного в настройках браузера пользователя языка, в Lighttpd можно использовать модуль mod_magnet, позволяющий определить логику обработки запроса через простой скрипт на языке Lua:
...
[Слишком большой объем текста. Скрыт. Для просмотра см. продолжение
]
 
----* Редирект в зависимости от домена в nginx (доп. ссылка 1)   Автор: Kirill Korinsky  [комментарии]
  Пример организации редиректа, в зависимости от домена, на какой-то раздел сайта.
...
[Слишком большой объем текста. Скрыт. Для просмотра см. продолжение
]
 
----* Создание SSL прокси при помощи lighttpd   Автор: Sergey Shkuratov  [комментарии]
  Возникла необходимость сделать на lighttpd балансирующий ssl-прокси к веб-серверу под управлением Apache.
...
[Слишком большой объем текста. Скрыт. Для просмотра см. продолжение
]
 
----* Пример привязки к географическому положению посетителя в nginx (доп. ссылка 1)   Автор: alexkbs  [комментарии]
  Для начала, следует прочитать о директивах модуля ngx_http_geo_module: http://sysoev.ru/nginx/docs/http/ngx_http_geo_module.html
...
[Слишком большой объем текста. Скрыт. Для просмотра см. продолжение
]
 
----* Замена содержимого отдаваемых Apache2 документов, по заданной маске (доп. ссылка 1)   [комментарии]
  Для автоматической замены, при отдаче html страниц, одного блока на другой можно использовать mod_substitute (http://httpd.apache.org/docs/2.2/mod/mod_substitute.html). Маска замены задается в виде регулярного выражения.
...
[Слишком большой объем текста. Скрыт. Для просмотра см. продолжение
]
 
----* Блокирование автоматических качалок через mod_rewrite (доп. ссылка 1)   [комментарии]
  RewriteEngine On RewriteCond %{HTTP_USER_AGENT} ^BlackWidow [OR] RewriteCond %{HTTP_USER_AGENT} ^Bot\ mailto:craftbot@yahoo.com [OR] RewriteCond %{HTTP_USER_AGENT} ^ChinaClaw [OR] RewriteCond %{HTTP_USER_AGENT} ^Custo [OR]
...
[Слишком большой объем текста. Скрыт. Для просмотра см. продолжение
]
 
----* Как в Apache использовать скрипт для обработки части пути (доп. ссылка 1)   Автор: Rodriges  [обсудить]
 
Есть скрипт http://domain.ru/art, для того чтобы запрос http://domain.ru/art/something 
не вызывал ошибки и приводил к запуску этого скрипта в настройках Apache 2 нужно прописать:
  <FilesMatch "^art">
     AcceptPathInfo On
  </Files> 

Для Apache 1.3, можно воспользоваться 
   ErrorDocument 404 /cgi-bin/art.cgi

Или
   <Location /art>
     SetHandler cgi-script
   </Location>

Или
   RewriteEngine on
   RewriteRule ^/art/(.*)$ /home/user/cgi-bin/art.cgi?$1 [T=application/x-httpd-cgi,L]
 
----* Как более эффективно блокировать несколько IP в apache (доп. ссылка 1)   [комментарии]
 
При наличии IP в blacklist.txt, посетителю показывается sorry.html:

   RewriteEngine on
   Rewritemap ipmap txt:/path/to/blacklist.txt 

   RewriteCond ${ipmap:%{REMOTE_ADDR}} =b
   RewriteCond %{request_uri} !=/sorry.html
   RewriteCond %{request_uri} !=/stylesheet.css
   RewriteRule .* /sorry.html                        [R,L]


/path/to/blacklist.txt
   11.22.33.44  b
   22.33.44.55  b
   33.44.55.66  b
 
----* Пример mod_rewrite редиректа при условии наличия файла   [обсудить]
 
Существует множество файлов вида http://www.host.ru/test/dirN/M.html и
http://www.host.ru/test/dirN/new/M.html (N=1,2..., M=1,2..)
Необходимо, если установлена cookie shownew=on и присутствует файл
/test/dirN/new/M.html прозрачно отображать
его содержимое,  а не файла /test/dirN/M.html, который показываем если
/test/dirN/new/M.html отсутствует.

   RewriteEngine on
   RewriteCond %{HTTP_COOKIE} ^.*shownew=on.*$
   RewriteCond %{REQUEST_URI} ^/test/([a-z]+[0-9]+)/([0-9]+\.html)$
   RewriteCond /home/host/htdocs/test/%1/new/%2 -f
   RewriteRule ^/test/([a-z]+[0-9]+)/([0-9]+\.html)$ /home/host/htdocs/test/$1/new/$2 [L]
 
----* Как в mod_rewrite организовать прозрачный переброс на CGI скрипт   [обсудить]
 
Вместо test.shtml?parm=N выдаем результат работы /cgi-bin/test.cgi?param=1

    RewriteCond %{REQUEST_URI} /test.shtml
    RewriteCond %{QUERY_STRING} param=[0-9]+
    RewriteRule ^(.+) $1/%{QUERY_STRING}  [C]
    RewriteRule ^/test.shtml/param=([0-9]+) /home/user/cgi-bin/test.cgi?param=$1 [T=application/x-httpd-cgi,L]
 
----* Можно ли произвести редирект на другую страницу без использования mod_rewrite   [комментарии]
 
Можно воспользоваться директивой Redirect из mod_alias:
   Redirect /dir1 http://test.ru/dir2
   Redirect permanent /dir1/ http://test.ru/dir2
   RedirectMatch  ^/$ http://test.ru/new.html
   RedirectMatch  .* http://test.ru/new.html
   RedirectMatch (.*)\.gif$ http://test.ru$1.jpg
  AliasMatch ^/img/(.*) /home/user1/img/$1
 
----* Как разрешить скачивать картинки с текущего сайта и запретить выкачивание через чужие линки.   Автор: uldus  [комментарии]
 
RewriteEngine On
RewriteCond %{REQUEST_URI} /img/ 
RewriteCond %{HTTP_REFERER} !^.*somedom\.ru.* [NC]
RewriteCond %{HTTP_REFERER} !^$
RewriteRule .* /empty.gif [L]
 
----* Выдача страницы в Apache в зависимости от языка   Автор: Belousov Oleg  [комментарии]
 
есть диры:
sub_host1/ru
sub_host1/en
sub_host2/ru
sub_host2/en
при обращении к www.somehost.ru/sub_host1 (и 2) должнен быть переход в дир со своим языком.
-- cgi-bin/redir.pl --
#!/usr/bin/perl
use CGI qw/:standard/;
($lang) = $ENV{HTTP_ACCEPT_LANGUAGE} =~ /(.?.?)/;
($redirurl) = param('redirurl');
$lang='en' if !( -d $ENV{DOCUMENT_ROOT}.$redirurl.$lang);
print redirect(-url=>$redirurl.$lang.'/');
-- httpd.conf --
RewriteEngine On
RewriteRule ^(/sub_host1/)$  /cgi-bin/redir.pl?redirurl=$1 [R,NE]
RewriteRule ^(/sub_host2/)$  /cgi-bin/redir.pl?redirurl=$1 [R,NE]
</VirtualHost>
 
----* Как организовать прозрачный редирект на другую страницу   [комментарии]
 
redirect  /catalog   http://new_host/new_catalog
или с mod_rewrite:
RewriteCond %{HTTP_HOST}  ^www.host1.ru$ [NC]
RewriteRule (.*) http://www.host2.ru:8200$1 [R=permanent,L]
 

 Версия для печати





Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру