.htaccess Мод Переписать - PullRequest
0 голосов
/ 02 июля 2011

Я пытаюсь переписать мод .htaccess для "бесконечного" количества значений.Я имею в виду, что 10 может быть хорошим максимальным числом, но если я хочу увеличить, то я хотел бы, чтобы скрипт также мог.

Например:

From: http://www.domain.com/index.php?page=test
To:   http://www.domain.com/test

From: http://www.domain.com/index.php?page=test&act=blah
To:   http://www.domain.com/test/blah

From: http://www.domain.com/index.php?page=test&act=blah&id=6
To:   http://www.domain.com/test/blah/6

Все страницыбудет иметь по крайней мере поле "страница", но не все мои дополнения и дополнения могут быть разными именами.Тем не менее, Мне плевать на имена полей. Если он просто перенаправляет на: index.php? 1 = test & 2 = blah & 3 = 6, тогда это будет лучшим.

Я думало возможном перенаправлении на что-то вроде ниже.

From: http://www.domain.com/index.php?page=test/blah
To:   http://www.domain.com/test/blah

Извините, если мой пост немного сбивает с толку;Я пытался отредактировать его.

1 Ответ

2 голосов
/ 02 июля 2011

Не совсем то, что вам нужно, но вот что-то, что даст вам представление о том, как писать рекурсивные правила в mod_rewrite:

RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([^/]+)/([^/]+)(/.*)?$ $3?$1=$2 [N,QSA,DPI]
RewriteRule ^(/[^/]+|[^/]+/|/?)$ /index.php [L,QSA,DPI]

Это перенаправляет URI от /hello/1/test/2/blah/3/foo/4 до index.php?foo=4&blah=3&test=2&hello=1.

Обновление на основе комментариев ОП:

RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([^/]+)/([^/]+)(/.*)?$ $3?$2 [N,QSA,DPI]
RewriteRule ^(/[^/]+|[^/]+/|/?)$ /index.php [L,QSA,DPI]

Перенаправляет URI от /1/hello/2/test/3/blah/4/foo до /index.php?foo&blah&test&hello.

...