Перенаправлення
Директиви: Redirect, RedirectMatch
Redirect – служить для здійснення редиректа на інший сайт (url).
Синтаксис: Redirect [status] path url
[status] – необов'язкове поле, що визначає код повернення. Існуючі значення: permanent (301 — документ переміщений постійно), temp (302 — документ переміщений тимчасово), seeother (303 — дивитеся інший), gone (410 — прибраний).
path – локальна частина запрошуваного посилання
url – посилання, куди здійснюється редирект (перенаправлення).
Приклад:
Redirect / http://site.ru/
Redirect /test.php http://site.ru/test.php
У даному прикладі що всім запитало сторінку test.php відкриватиметься http://site.ru/test.php
Так, наприклад, при запиті welcome.php буде переадресація на http://site.ru/welcome.php
Директива RedirectMatch аналогічна директиві Redirect, за винятком того, що в параметри указується шаблон локальних сторінок у вигляді регулярних виразів. Наприклад:
RedirectMatch (.*)\.php$ http://www.site.ru/test.php
RedirectMatch (.*)\.jpg$ http://www.site.ru/test.gif
Можна зробити перенаправлення залежно від ip-адреса відвідувача:
RewriteCond %{REMOTE_ADDR} 12.345.67.89
RewriteRule ^/$ /errors.php [L]
У даному прикладі всім відвідувачам, що прийшли з ip-адреса 12.345.67.89 відкриватиметься сторінка errors.php.
Ви можете вказати декілька ip-адресов, і для кожного визначити своє правило перенаправлення:
RewriteCond %{REMOTE_ADDR} 12.345.67.89
RewriteRule ^/$ /welcome.php [L]
RewriteCond %{REMOTE_ADDR} 123.45.67.89
RewriteRule ^/$ /close.php [L]
RewriteCond %{REMOTE_ADDR} 98.765.43.21
RewriteRule ^/$ http://www.site.ru [L]
У результаті всім відвідувачам, що прийшли з адреси 12.345.67.89 відкриватиметься сторінка welcome.php, відвідувачам з ip-адреса 123.45.67.89 відкриється close.php, а що всі прийшли з адреси 98.765.43.21 будуть перенаправлені на сайт www.site.ru.
Приведені правила можуть бути розрізнятися на різних серверах, залежно від його конфігурації.
При необхідності визначити переадресацію для групи ip-адресов, слідує:
RewriteEngine On
RewriteCond %{REMOTE_ADDR} 12.345.67.89 [OR]
RewriteCond %{REMOTE_ADDR} 98.765.43.21
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ /welcome.php [L]
У приведеному прикладі всі відвідувачі з ip-адресов 98.765.43.21 і 12.345.67.89 переадресовуватимуться на сторінку welcome.php
Так само можна зробити перенаправлення залежно від тієї сторінки, з якою прийшов відвідувач:
RewriteCond %{HTTP_REFERER} http://www.site.ru/test.php
RewriteRule ^/welcome.php$ /errors.php [L]
В даному прикладі всім відвідувачам, що прийшли з адреси http://www.site.ru/test.php, замість сторінки welcome.php відкриватиметься сторінка errors.php.
Перенаправлення для різного роду вірусів і сканерів:
redirect /_vti_bin http://www.site.ru
redirect /scripts http://www.site.ru
redirect /MSADC http://www.site.ru
redirect /c http://www.site.ru
redirect /d http://www.site.ru
redirect /_mem_bin http://www.site.ru
redirect /msadc http://www.site.ru
RedirectMatch (.*)\cmd.exe$ http://www.site.ru $1
Директиви: Redirect, RedirectMatch
Redirect – служить для здійснення редиректа на інший сайт (url).
Синтаксис: Redirect [status] path url
[status] – необов'язкове поле, що визначає код повернення. Існуючі значення: permanent (301 — документ переміщений постійно), temp (302 — документ переміщений тимчасово), seeother (303 — дивитеся інший), gone (410 — прибраний).
path – локальна частина запрошуваного посилання
url – посилання, куди здійснюється редирект (перенаправлення).
Приклад:
Redirect / http://site.ru/
Redirect /test.php http://site.ru/test.php
У даному прикладі що всім запитало сторінку test.php відкриватиметься http://site.ru/test.php
Так, наприклад, при запиті welcome.php буде переадресація на http://site.ru/welcome.php
Директива RedirectMatch аналогічна директиві Redirect, за винятком того, що в параметри указується шаблон локальних сторінок у вигляді регулярних виразів. Наприклад:
RedirectMatch (.*)\.php$ http://www.site.ru/test.php
RedirectMatch (.*)\.jpg$ http://www.site.ru/test.gif
Можна зробити перенаправлення залежно від ip-адреса відвідувача:
RewriteCond %{REMOTE_ADDR} 12.345.67.89
RewriteRule ^/$ /errors.php [L]
У даному прикладі всім відвідувачам, що прийшли з ip-адреса 12.345.67.89 відкриватиметься сторінка errors.php.
Ви можете вказати декілька ip-адресов, і для кожного визначити своє правило перенаправлення:
RewriteCond %{REMOTE_ADDR} 12.345.67.89
RewriteRule ^/$ /welcome.php [L]
RewriteCond %{REMOTE_ADDR} 123.45.67.89
RewriteRule ^/$ /close.php [L]
RewriteCond %{REMOTE_ADDR} 98.765.43.21
RewriteRule ^/$ http://www.site.ru [L]
У результаті всім відвідувачам, що прийшли з адреси 12.345.67.89 відкриватиметься сторінка welcome.php, відвідувачам з ip-адреса 123.45.67.89 відкриється close.php, а що всі прийшли з адреси 98.765.43.21 будуть перенаправлені на сайт www.site.ru.
Приведені правила можуть бути розрізнятися на різних серверах, залежно від його конфігурації.
При необхідності визначити переадресацію для групи ip-адресов, слідує:
RewriteEngine On
RewriteCond %{REMOTE_ADDR} 12.345.67.89 [OR]
RewriteCond %{REMOTE_ADDR} 98.765.43.21
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ /welcome.php [L]
У приведеному прикладі всі відвідувачі з ip-адресов 98.765.43.21 і 12.345.67.89 переадресовуватимуться на сторінку welcome.php
Так само можна зробити перенаправлення залежно від тієї сторінки, з якою прийшов відвідувач:
RewriteCond %{HTTP_REFERER} http://www.site.ru/test.php
RewriteRule ^/welcome.php$ /errors.php [L]
В даному прикладі всім відвідувачам, що прийшли з адреси http://www.site.ru/test.php, замість сторінки welcome.php відкриватиметься сторінка errors.php.
Перенаправлення для різного роду вірусів і сканерів:
redirect /_vti_bin http://www.site.ru
redirect /scripts http://www.site.ru
redirect /MSADC http://www.site.ru
redirect /c http://www.site.ru
redirect /d http://www.site.ru
redirect /_mem_bin http://www.site.ru
redirect /msadc http://www.site.ru
RedirectMatch (.*)\cmd.exe$ http://www.site.ru $1