Всея ПЫХА epsyl adw0rd Мавр ГО Irinax http://hell.helldude.ru - это пиздец

пыха. день первый) url rewrite rules = apache || php? JUST DO IT WITH PHP (:

Рубрики: (nginx, Апаче (не вертолет), КодЛинч 0.1 beta, Полезные штуки) Автор: phpdude 23-11-2008

Теги : , , , , , , , , ,

кароч. епсил чето говрил насчет пыхи. зашол, зарегался, 40 тем в форуме в профи разделе…

наткнулся http://pyha.ru/forum/topic/1205.0

думаю что это все таки частая проблема

apache mod_rewrite rules – не ПАНАЦЕЯ и это должен знать каждый!

у человека хорошая идея (тимур .. имя знакомое, но похуй).

порой хочется красивые юрлы, и в них надо бы красиво чето передавать еще.

можно в лоб, как это делает например DLE. убил бы автора такого метода ножом в шею.

DirectoryIndex index.php

RewriteEngine On

# ╨хфшЁхъЄ√
RewriteRule ^page/(.*)$ index.php?cstart=$1 [L]

# ╤рь яюёЄ
RewriteRule ^([0-9]{4})/([0-9]{2})/([0-9]{2})/page,([0-9]+),([0-9]+),(.*).html(/?)+$ index.php?subaction=showfull&year=$1&month=$2&day=$3&news_page=$4&cstart=$5&news_name=$6 [L]
RewriteRule ^([0-9]{4})/([0-9]{2})/([0-9]{2})/page,([0-9]+),(.*).html(/?)+$ index.php?subaction=showfull&year=$1&month=$2&day=$3&news_page=$4&news_name=$5 [L]
RewriteRule ^([0-9]{4})/([0-9]{2})/([0-9]{2})/print:page,([0-9]+),(.*).html(/?)+$ engine/print.php?subaction=showfull&year=$1&month=$2&day=$3&news_page=$4&news_name=$5 [L]
RewriteRule ^([0-9]{4})/([0-9]{2})/([0-9]{2})/(.*).html(/?)+$ index.php?subaction=showfull&year=$1&month=$2&day=$3&news_name=$4 [L]

RewriteRule ^([^.]+)/page,([0-9]+),([0-9]+),([0-9]+)-(.*).html(/?)+$ index.php?newsid=$4&news_page=$2&cstart=$3 [L]
RewriteRule ^([^.]+)/page,([0-9]+),([0-9]+)-(.*).html(/?)+$ index.php?newsid=$3&news_page=$2 [L]
RewriteRule ^([^.]+)/print:page,([0-9]+),([0-9]+)-(.*).html(/?)+$ engine/print.php?news_page=$2&newsid=$3 [L]
RewriteRule ^([^.]+)/([0-9]+)-(.*).html(/?)+$ index.php?newsid=$2 [L]

RewriteRule ^page,([0-9]+),([0-9]+),([0-9]+)-(.*).html(/?)+$ index.php?newsid=$3&news_page=$1&cstart=$2 [L]
RewriteRule ^page,([0-9]+),([0-9]+)-(.*).html(/?)+$ index.php?newsid=$2&news_page=$1 [L]
RewriteRule ^print:page,([0-9]+),([0-9]+)-(.*).html(/?)+$ engine/print.php?news_page=$1&newsid=$2 [L]
RewriteRule ^([0-9]+)-(.*).html(/?)+$ index.php?newsid=$1 [L]

# ╟р фхэ№
RewriteRule ^([0-9]{4})/([0-9]{2})/([0-9]{2})(/?)+$ index.php?year=$1&month=$2&day=$3 [L]
RewriteRule ^([0-9]{4})/([0-9]{2})/([0-9]{2})/page/([0-9]+)(/?)+$ index.php?year=$1&month=$2&day=$3&cstart=$4 [L]
# ╟р тхё№ ьхё Ў
RewriteRule ^([0-9]{4})/([0-9]{2})(/?)+$ index.php?year=$1&month=$2 [L]
RewriteRule ^([0-9]{4})/([0-9]{2})/page/([0-9]+)(/?)+$ index.php?year=$1&month=$2&cstart=$3 [L]
# ┬√тюф чр тхё№ уюф
RewriteRule ^([0-9]{4})(/?)+$ index.php?year=$1 [L]
RewriteRule ^([0-9]{4})/page/([0-9]+)(/?)+$ index.php?year=$1&cstart=$2 [L]
# т√тюф юЄфхы№эюьє Єхує
RewriteRule ^tags/([^/]*)(/?)+$ index.php?do=tags&tag=$1 [L]
RewriteRule ^tags/([^/]*)/page/([0-9]+)(/?)+$ index.php?do=tags&tag=$1&cstart=$2 [L]
# т√тюф фы  юЄфхы№эюую ■чхЁр
RewriteRule ^user/([^/]*)/rss.xml$ engine/rss.php?subaction=allnews&user=$1 [L]
RewriteRule ^user/([^/]*)(/?)+$ index.php?subaction=userinfo&user=$1 [L]
RewriteRule ^user/([^/]*)/news(/?)+$ index.php?subaction=allnews&user=$1 [L]
RewriteRule ^user/([^/]*)/news/page/([0-9]+)(/?)+$ index.php?subaction=allnews&user=$1&cstart=$2 [L]
RewriteRule ^user/([^/]*)/news/rss.xml(/?)+$ engine/rss.php?subaction=allnews&user=$1 [L]
# т√тюф тёхї яюёыхфэшї эютюёЄхщ
RewriteRule ^lastnews/(/?)+$ index.php?do=lastnews [L]
RewriteRule ^lastnews/page/([0-9]+)(/?)+$ index.php?do=lastnews&cstart=$1 [L]
# т√тюф т тшфх ърЄрыюур
RewriteRule ^catalog/([^/]*)(/?)+$ index.php?catalog=$1 [L]
RewriteRule ^catalog/([^/]*)/page/([0-9]+)(/?)+$ index.php?catalog=$1&cstart=$2 [L]
# т√тюф эхяЁюўшЄрээ√ї ёЄрЄхщ
RewriteRule ^newposts(/?)+$ index.php?subaction=newposts [L]
RewriteRule ^newposts/page/([0-9]+)(/?)+$ index.php?subaction=newposts&cstart=$1 [L]
# ╤ЄрЄшёЄшўхёъшх ёЄЁрэшЎ√
RewriteRule ^static/(.*).html(/?)+$ index.php?do=static&page=$1 [L]
# т√тюф шчсЁрээ√ї ёЄрЄхщ
RewriteRule ^favorites(/?)+$ index.php?do=favorites [L]
RewriteRule ^favorites/page/([0-9]+)(/?)+$ index.php?do=favorites&cstart=$1 [L]

RewriteRule ^rules.html$ index.php?do=rules [L]
RewriteRule ^statistics.html$ index.php?do=stats [L]
RewriteRule ^addnews.html$ index.php?do=addnews [L]
RewriteRule ^rss.xml$ engine/rss.php [L]
RewriteRule ^sitemap.xml$ uploads/sitemap.xml [L]

RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([^.]+)/page/([0-9]+)(/?)+$ index.php?do=cat&category=$1&cstart=$2 [L]
RewriteRule ^([^.]+)/?$ index.php?do=cat&category=$1 [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([^<]+)/rss.xml$ engine/rss.php?do=cat&category=$1 [L]
RewriteRule ^page,([0-9]+),([^/]+).html$ index.php?do=static&page=$2&news_page=$1 [L]
RewriteRule ^([^/]+).html$ index.php?do=static&page=$1 [L]

сразу видно что нихуя не думает их архитектор, и что этот движек – его первый опыт планирования.

да, это конечно вариант, но не хороший.

почему? а попробуйте найдите реврайт для /news/251-that-is-fucking-title.html

вот и я не стану.

это был первый минус. второй! вдруг я захожу развернуть DLE например на ZEUS web server или Nginx! и чаго? пиздец урлам? правильно, урлам пиздец.

чтоже делать тогда ?

лучше перенаправлять все в индекс.пыхахы и чтобы он все разбирал! не верите?

вот вам пример такого исполнения:

.htaccess

RewriteEngine On
RewriteRule .* index.php

мало? сможете такие е правила воспроизвести на нгинкссе? вот и я смогу. далее самое интересное :)

предложенный кем то в теме метод preg_match_all – ебень. можно конечно, но это все-таки преги. лучше ух по старинке.

<?
$request = substr($_SERVER['REQUEST_URI'],strrpos($_SERVER['SCRIPT_NAME'],«/»)+1);

$get = strpos($request,«?»)===false ? $request : substr($request,0,strpos($request,«?»));
$get = split(«/»,$get);

$_GET = array();
foreach($get as $v)
{
$v = explode(«-»,$v);
$_GET[$v[0]] = $v[1];
}

if(strpos($request,«?»)!==false)
{
parse_str(substr(strstr($request,«?»),1),$_GET['PARAMS']);
}

print_r($_GET);
die();

многие могут подумать что я дурак раз так делаю. мне похуй, думайте. по поводу первой строки тоже могут возникнуть споры, но я уверен что этот вариант лучший и будет работать на всех веб серверах с меньшей еблей.

аривидерчи.

Комментарии RSS тут:

Всего отзывов: 3 на пыха. день первый) url rewrite rules = apache || php? JUST DO IT WITH PHP (:

Оставьте свой отзыв

XHTML: Вы можете использовать следующие теги: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

О САЙТЕ

Крик души может быть будет на этом сайте, а может и будет что-нибудь другое :)