Mod Rewrite (Статей: 11)

для начала создадим файл .htaccess и поместим туда следующий код
RewriteEngine On
RewriteBase /
RewriteCond %{ENV:REDIRECT_FINISH} !^$
RewriteRule ^ - [L]
#Дальше сколько угодно правил
RewriteRule ^/?([\w]+)$ /
router.php?page=$1 [E=FINISH:1,L,QSA]
далее создадим файл router.php и поместим туда этот код

<?php

include 'header.php';//шапка сайта 

//существует ли запрашиваемый файл? если нет то назначаем файл по умолчанию index
$file = file_exists(ROOT.'/pages/'.$_GET['page'].'.php') ? $_GET['page'] : 'index';


//загружаем файл
include 'pages/'.$file.'.php';

include 'footer.php';
exit;
к примеру:
при запросе site.ru/forum будет запрошен файл pages/forum.php

ЭТО ПРОСТОИ РОУТЕР ДЛЯ НОВИЧКОВ

Site: Портфолио программиста Автор: (05.11.2014 / 20:00)
Просмотры: 1934
Комментарии (11) »
Зачастую при разработке сайта мы сталкиваемся с проблемой ЧПУ( ЧеловекоПонятныхУрл ).
В данной статье представлен вариант устранения ошибки 500 Internal Server Error.
Попробовал и я на своей колокольне такую ошибку, много раз вскипал мозг и наконец-то "добрые люди пнули в направлении на юг".
Суть в том что mod_rewrite "ищет" подходящий шаблон под наш запрос, пока не получит нужный, бесконечно (по крайней мере на хостах обычно стоит тайм-аут, благодаря которому и срабатывает ошибка 500), но благодаря маленькой хитрости можно устранить это дело.
НАЧНЕМ:
RewriteEngine On
RewriteBase /
RewriteCond %{ENV:REDIRECT_FINISH} !^$
RewriteRule ^ - [L]
#Дальше сколько угодно правил
RewriteRule ^/?([a-z]+)$...[/L]
Автор: (05.11.2014 / 19:35)
Просмотры: 1188
Комментарии (0) »
Многие начинающие веб-мастера встречаются с проблемой обработки длинных адресов в строке браузера. Например, у вас есть динамическая страница, которая обрабатывает запросы на скачивание файлов, с адресом вида http://www.my-site.com.ua/cgi-bin/download/get-files.cgi. Для обработки файла нужно ввести категорию файла (к примеру, "мои файлы" — id=my-files) и название (допустим, name=My_Editor), после чего у нас получится что-то вроде http://www.my-site.com.ua/cgi-bin/download/get-files.cgi?id=my-files&name=My_Editor. Согласитесь, такой вид крайне неудобен для конечного пользователя, особенно если адрес ему приходится вводить вручную. Избежать подобных сложностей можно с помощью инструмента mod_rewrite из стандартного набора сервера Apache (http://www.apache.org/). Он позволяет созданную выше конструкцию преобразовать в запись вроде http://www.my-site.com.ua/my-files/dn_pg=My_Editor. Или вот еще один пример. Допустим, вам надо... Автор: (14.09.2011 / 11:43)
Просмотры: 1767
Комментарии (4) »
R[=code]- Перейти на новый URL, с дополнительным кодом (см. ниже)..
F - Запретныей (Отпровляет заголовок 403)
G - Gone (не существует)
P - Прокси
L - Последнее правило
N - Следующая (т.e. Перезагрузка правила)
C - Chain
T = mime-type - Установить Mime Type
NS - Пропустить, если есть внутренний подзапрос
NC - Не учитывать регистр
QSA - Добавить строку запроса
NE - Do not escape output
PT - Пройдя через
S = x - Перейти x следующих правил
E = var:value - Установить значение переменной окружения "Var" на "value".
Кривой - но все же перевод! Автор: (03.09.2010 / 15:10)
Просмотры: 2414
Комментарии (1) »
в корневой директории создаем .htaccess с содержанием:
RewriteEngine On
RewriteCond %{HTTP_HOST} ^(.+)\.вашсайт\.com$ [NC]
RewriteCond %{HTTP_HOST} !^www\.вашсайт\.com$ [NC]
RewriteCond %{REQUEST_URI} !^/subdomains
RewriteRule ^(.*) %{HTTP_HOST}$1
RewriteRule ^(.*)\.вашсайт\.com(.*) /subdomains/$1$2
RewriteRule ^subdomains\.(.*) /subdomains/$1
и файл httpd.conf с содержанием:

<Directory /domains/вашсайт.com/html>
Options FollowSymLinks
AllowOverride All
</Directory>
<VirtualHost вашсайт.com>
ServerAdmin admin@вашсайт.com
ServerAlias *вашсайт.com
Virtual DocumentRoot /domains/вашсайт.com/html/%1
ServerName вашсайт.com
ErrorLog logs/вашсайт.com-error_log
CustomLog logs/вашсайт.com-access_log common
</VirtualHost>
В корне создаем папку subdomains
Пример:
хотим получить поддомен umax.вашсайт.com
1 - идем в subdomains и создаем там папку umax
2 - всё! Автор: (11.06.2010 / 17:26)
Просмотры: 2619
Комментарии (8) »
Часто хостинговые провайдеры накладывают ограничение на количество уикальных сайтов, и зачастую под это ограничение попадают и поддомены. Данное ограничение можно обойти средствами .htaccess. Например мы хотим направить поддомен forum.yourdomain.net на директорию ~/forum для этого необходимо направить нужные поддомены на папку с остновным сайтом и создать вложенную директорию например forum
RewriteEngine on
RewriteCond %{HTTP_HOST} ^forum\.yuordomain\.net$ [NC]
RewriteCond %{REQUEST_URI} !^/forum/$ [NC]
RewriteRule (.*) /forum/$1 [L]
Автор: (11.06.2010 / 17:22)
Просмотры: 1711
Комментарии (2) »
Сайт перенесен с одного домена на другой с domain.com на domain2.com
RewriteEngine on
RewriteCond %{HTTP_HOST} ^www\.domain\.com$ [R=301,1]
RewriteRule ^(.*)$ http://www.domain2.com/$1
Автор: (11.06.2010 / 17:20)
Просмотры: 1690
Комментарии (2) »
Перенаправление несуществующих URL на другой веб-сервер
RewriteEngine on
RewriteBase   /
RewriteCond /your/docroot/%{REQUEST_FILENAME} !-f
RewriteRule ^(.+) http://webserverB.dom/$1 
Автор: (11.06.2010 / 17:18)
Просмотры: 1668
Комментарии (1) »
Необходимо запрос любой страницы сайта отправлять на одну (будет написано что сайт временно ен доступен), но в то же время нужно оставить его открытым для поисковых машин. То есть для клиентов сайт закрыт, а для индексации - открыт.
RewriteEngine on
RewriteBase   /
RewriteCond %{HTTP_USER_AGENT} !^yandex.* [NC,OR]
RewriteCond %{HTTP_USER_AGENT} !^googlebot.* [NC,OR]
RewriteCond %{HTTP_USER_AGENT} !^gaisbot.* [NC,OR]
RewriteCond %{HTTP_USER_AGENT} !^rambler.* [NC,OR]
RewriteCond %{HTTP_USER_AGENT} !^aport.* [NC,OR]
RewriteCond %{HTTP_USER_AGENT} !^metacrawler.* [NC,OR]
RewriteCond %{HTTP_USER_AGENT} !^msnbot.* [NC,OR]
RewriteCond %{HTTP_USER_AGENT} !^crawler.* [NC,OR]
RewriteRule ^/$ - [L,R]
Автор: (11.06.2010 / 17:16)
Просмотры: 1763
Комментарии (0) »
Указание доступа к сайту по времени
RewriteEngine on
RewriteCond %{TIME_HOUR}%{TIME_MIN} > 900
RewriteCond %{TIME_HOUR}%{TIME_MIN} < 1800
RewriteRule .* - [ F ] Автор: (11.06.2010 / 17:15)
Просмотры: 1776
Комментарии (3) »
Топ статей / Облако тегов / Поиск / Авторы