Linux за българи: Форуми

Linux секция за начинаещи => Настройка на програми => Темата е започната от: ivanatora в Jul 22, 2007, 16:07



Титла: Mod_rewrite
Публикувано от: ivanatora в Jul 22, 2007, 16:07
Здравейте!
Опитвам се да направя следното заместване на URL:
www.domain.com/artist-d/ ->
www.domain.com/site.php?by_artst=d
И още:
www.domain.com/title-f/ ->
www.domain.com/site.php?by_title=f
Ако успея да направя първото ще мога и второто :)
Последното което опитах до тук беше .htaccess:
Примерен код

Options +FollowSymLinks
RewriteEngine On
RewriteCond %{ENV:REDIRECT_STATUS} ^$
RewriteRule ^/artist-(.)/$ /site.php?by_artist=$1 [R,L]

Не редиректва. (Mod_rewrite си работи)
Обаче ако пробвам следното:
Примерен код

RewriteRule ^(.*)$ /site.php?by_artist=$1 [R,L]

Получавам URL: www.domain.com/site.php?by_artist=aritst-d/
Предполагам че в artist-d/ трябва да се търси съвпадение, и не знам защо тоя regex 'artist-(.)' не съвпада.

P.S. Проблема май се оправи като преместих .htaccess-а в главната папка на сървъра. До сега беше в една подпапка... а колко си блъсках главата с това  :zzz:





Титла: Mod_rewrite
Публикувано от: Йордан в Jul 22, 2007, 20:45
Цитат (ivanatora @ Юли 22 2007,16:07)
Примерен код

RewriteRule ^(.*)$ /site.php?by_artist=$1 [R,L]

URL: http://www.example.com/index.php?cat=category&subcat=subcategory
Примерен код
RewriteEngine on
RewriteRule ^([^/\.]+)/([^/\.]+)/?$ /index.php?cat=$1&subcat=$2 [L]

След прилагане на израза: http://www.example.com/category/subcategory
Цитат
^([^/\.]+)/([^/\.]+)/?$
Това е регулярен израз, който трябва да ти мачва крайния резултат. Така трябва да разделя крайния адрес, че със
Цитат
/index.php?cat=$1&subcat=$2
да може да вземеш частите на масива от предходния израз


Титла: Mod_rewrite
Публикувано от: Йордан в Jul 22, 2007, 20:46
Скобите определят масива ;) Повече инфо тук:
http://en.wikipedia.org/wiki/Regular_expression