|
|||||||
Apache: Редирект на URL и примеры использования mod_rewrite
Время создания: 10.01.2016 20:49
Раздел: Компьютер - Linux - Сеть в Linux - Apache
Запись: xintrea/mytetra_syncro/master/base/1452448163mbgzyitn3n/text.html на raw.github.com
|
|||||||
|
|||||||
Для автоматического перенаправления на внешнюю страницу (при входе в директорию /test на вашем сайте пользователь будет перенаправлен на http://www.test.com/) можно использовать такую конструкцию в httpd.conf или .htaccess: Redirect permanent /test http://www.test.com/ Или для файла test.html: Redirect permanent /test.html http://www.test.com Зашедших в test перенаправляем на www.test.com, оостальных на enter.test.com, (порядок следования записей важен !):
Redirect permanent /test http://www.test.com/ Redirect permanent / http://enter.test.com/ Рассмотрим оргинизацию редиректа при помощи mod_rewrite: Для работы с mod_rewrite незабудьте статически собрать apache с поддержкой mod_rewrite или подключить модуль: LoadModule rewrite_module libexec/mod_rewrite.so AddModule mod_rewrite.c http://www.engelschall.com/pw/apache/rewriteguide/ http://www.apache.org./docs/mod/mod_rewrite.html Например, если необходимо чтобы вместо rewrite.htm заружался файл rewrite.html, добавьте в .htaccess:
RewriteEngine on RewriteBase / RewriteRule ^rewrite\.htm$ rewrite.html [R=permanent] Для замены всех .htm фалов .html файлами:
RewriteEngine on RewriteBase / RewriteRule ^(.*)\.htm$ $1.html [R=permanent] Пример манипуляции с переменными окружения (делаем редирект на .html если запрошен файл .htm и на диске есть одноименный .html файл):
RewriteEngine on RewriteBase / #Если .htm файл устанавливаем переменную окружения HTM=1 RewriteRule ^(.*)\.htm$ $1 [C,E=HTM:1] #Проверяем существует ли файл на диске RewriteCond %{REQUEST_FILENAME}.html -f #Если существует делаем редирект RewriteRule ^(.*)$ $1.html [S=1,R] # если не сеществует и переменная окружения HTM=1 показываем запрошенный .htm RewriteCond %{ENV:HTM} ^1$ RewriteRule ^(.*)$ $1.htm
Для ведения отдельньго лог файла со всеми пересылками нужно добавить в httpd.conf: RewriteLog /var/log/apache/rewrite.log RewriteLogLevel 1 |
|||||||
Так же в этом разделе:
|
|||||||
|
|||||||
|