Правило переписывания htaccess проверяет количество переменных - PullRequest
0 голосов
/ 17 марта 2012

Я пытаюсь изменить / a / b / c на /index.php?a=1&b=2&c=3

У меня есть правило в моем файле htaccess:

RewriteRule ([^/]+)/([^/]+)/? /index2.php?main=$1&category=$2 [QSA] 

Но я не могу понять, как сделать это правило гибким для различного количества переменных.

Поэтому / a следует переписать в /index.php?a=1

/a / b следует переписать в /index.php?a=1&b=2

/ a / b / c следует переписать в /index.php?a=1&b=2&c=3

hlep

1 Ответ

1 голос
/ 17 марта 2012

Не усложняйте, просто делайте 3 правила. Если вы хотите переписать только числовым способом, вы должны сделать это:

RewriteRule ^([0-9]+)\/([0-9]+)\/([0-9]+)$ index.php?a=$1&b=$2&c=$3 [QSA]

RewriteRule ^([0-9]+)\/([0-9]+)$ index.php?a=$1&b=$2 [QSA]

RewriteRule ^([0-9]+)$ index.php?a=$1 [QSA]

Или буквенно-цифровым способом заменить ([0-9] +) на ([\ w] +)

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

RewriteRule ^([\w\/]+)$ index.php?path=$1 [QSA]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...