htaccess переписать, в массив? - PullRequest
       1

htaccess переписать, в массив?

0 голосов
/ 16 декабря 2011

Скажем, у меня есть следующие страницы:

http://www.site.com/folder/page.php?id=89
http://www.site.com/folder/page.php?id=85
http://www.site.com/folder/page.php?id=camel+hump
http://www.site.com/folder/page.php?id=76
http://www.site.com/folder/page.php?id=71
http://www.site.com/folder/page.php?id=frog
http://www.site.com/folder/page.php?id=62
http://www.site.com/folder/page.php?id=59

, и я хочу направить следующее:

89, 79, 44, верблюд + горб на следующую страницу:

http://www.site.com/folder/page/$1

EG:

http://www.site.com/folder/camel-hump (Notice the + replaced with a -)

и все остальное на следующей странице:

http://www.site.com/folder/overview

Как мне это сделать?

По сути, у меня естьоколо 200 страниц, которые нужно перенаправить, и все они имеют один и тот же URL, кроме параметра get, некоторые из них требуют перенаправления на страницу /folder/get-parameter, а остальные - на страницу /folder/overview.

Iтакже необходимо заменить знаки + на знаки -, например, camel+hump становится camel-hump

Как я могу сделать это с помощью правила перезаписи?Что-то вроде:

if match (89|79|44|camel+hump|frog) go to /folder/$1 (but replace + with -)

все остальное, перейдите на /folder/overview

Спасибо

1 Ответ

0 голосов
/ 16 декабря 2011

Попробуйте:

# Filter out the query string values for id that you want to rewrite
RewriteCond %{QUERY_STRING} ^id=(89|79|44|camel\+hump|frog)
RewriteRule ^folder/page.php$ /folder/page/%1?  [L]

# get rid of the +
RewriteRule ^folder/page/(.+)\+(.+)$ /folder/page/$1-$2 [L]
...