Lonely Dreamer (sanmai) wrote,
Lonely Dreamer
sanmai

Amazon Rewrite

Добавив эти четыре строчки в .htaccess:
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-s
RewriteRule ^(.*)/([^/]+)/([^/]+)$ $1?$2=$3 [PT,QSA]
RewriteRule ^([^/]+)/([^/]+)$ ?$1=$2 [PT,QSA]

RewriteCond %{REQUEST_FILENAME} !-s
RewriteRule ^([^/]+)$ ?seo_string=$1 [L,QSA]

Из таких ссылок как на amazon.com:
http://example.com/dp/B0002232ZG/ref/kx3/query/text

Мы получаем такие, удобные для дальнейшей работы:
http://example.com/?dp=B0002232ZG&ref=kx33&query=text

Для решения проблемы с уникодными символами нужно:

1) Добавить в конфиг виртуального хоста директиву:
RewriteMap escape int:escape

2) Заменить соответствующие $X на ${escape:$X}.

Получится такой код в .htaccess:
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-s
RewriteRule ^(.*)/([^/]+)/([^/]+)$ ${escape:$1}?${escape:$2}=${escape:$3} [PT,QSA]
RewriteRule ^([^/]+)/([^/]+)$ ?${escape:$1}=${escape:$2} [PT,QSA]

RewriteCond %{REQUEST_FILENAME} !-s
RewriteRule ^([^/]+)$ ?seo_string=${escape:$1} [L,QSA]
Tags: linux, mod_rewrite, useful
Subscribe
  • Post a new comment

    Error

    Anonymous comments are disabled in this journal

    default userpic

    Your reply will be screened

    Your IP address will be recorded 

  • 0 comments