Mod_rewrite для http://adresa.com/view/1113 - PullRequest
0 голосов
/ 23 марта 2012

Мне нужно переписать этот URL http://adresa.com/article.php?act=view&id=1113 на http://adresa.com/view/1113

Я делаю это с mod_rewrite в .htaccess, но это не работает.

RewriteBase /
RewriteCond %{QUERY_STRING} ^act=([^&]+)$
RewriteRule ^article\.php$ %1.html? [R=301,L,NE]
RewriteRule ^([^/]+)\.html article.php?rw=1&act=$1 [L,QSA] 
RewriteRule ^([^/]+)/{1}([^/.]+)\.html article.php?rw=1&act=$1&id=$2 [L,QSA]

Может кто-нибудь помочь мне, пожалуйста?

1 Ответ

0 голосов
/ 23 марта 2012

Вот решение (с правильным разделением строк, чтобы избежать путаницы (RewriteCond действителен только для одного следующего за RewriteRule, поэтому ставьте пустую строку после, чтобы избежать путаницы)):

RewriteBase /

RewriteRule /view/([0-9+])$ /article.php?act=view&id=$1 [QSA,L]

RewriteCond %{QUERY_STRING} ^act=([^&]+)$
RewriteRule ^article\.php$ %1.html? [R=301,L,NE]

RewriteRule ^([^/]+)\.html article.php?rw=1&act=$1 [L,QSA] 
RewriteRule ^([^/]+)/{1}([^/.]+)\.html article.php?rw=1&act=$1&id=$2 [L,QSA]
...