мое правило htaccess переходит на страницу, а не идентификатор - PullRequest
7 голосов
/ 22 декабря 2011

У меня есть сайт аренды недвижимости, и я переезжаю на новый сайт. У меня проблема с моими правилами от Apache.

например: / FL / Майами / 2 / / CA / Сан-Диего / 41 /

я хочу иметь возможность динамически отображать страницу на основе URL

rewriterule ^([a-z]+)/$ index.php?state=$1&city=&mode=list
rewriterule ^([a-z]+)/([a-z]+)/$ index.php?state=$1&city=$2&mode=list
rewriterule ^([a-z]+)/([a-z]+)/([0-9]+)/$ index.php?state=$1&city=$2&id=$3

поэтому я вижу весь список для каждого штата или список для каждого штата / города

Теперь моя проблема - когда я пытаюсь увидеть страницу 2, вместо этого я получаю идентификатор

Есть ли волшебный способ исправить это?

1 Ответ

8 голосов
/ 22 декабря 2011

Вот что будет работать для вас (поместите это в ваш .htaccess в корне документа):

RewriteEngine On
RewriteBase /

rewriterule ^([a-z]+)/?$ index.php?state=$1&city=&mode=list [NC,L,QSA]
rewriterule ^([a-z]+)/([a-z0-9_\-]+)/?$ index.php?state=$1&city=$2&mode=list [NC,L,QSA]
rewriterule ^([a-z]+)/([a-z0-9_\-]+)/([0-9]+)/?$ index.php?state=$1&city=$2&pagenum=$3&mode=page [NC,L,QSA]
rewriterule ^([a-z]+)/([a-z0-9_\-]+)/([0-9]+)/([a-z0-9_\-]+)/?$ index.php?state=$1&city=$2&id=$3&mode=view [NC,L,QSA]

Итак:

/california/san-diego/2 или /california/san-diego/2/ будет перейти на страницу 2

/FL/Miami/2/home-house-test или /FL/Miami/2/home-house-test/ будет на странице собственности

...