2015-09-30 1 views
0

У меня есть пара RewriteRules, которые я хотел бы объединить в один. Я не уверен, как это сделать. Я думаю, что вокруг нужно будет использовать? Разница между ними заключается в первом будет соответствовать что-то вроде:htaccess - переписывать переписывать в одиночный

search/foo или search/foo/

, а второй будет соответствовать

search/foo/10 или search/foo/10/

переписывает:

RewriteRule ^search/([a-zA-Z]+)/?$ index.php?page=search&query=$1&pn=1 [L] 
RewriteRule ^search/([a-zA-Z]+)/([0-9]+)/?$ index.php?page=search&query=$1&pn=$2 [L] 

Без используя внешний вид, моя попытка будет

^search/([a-zA-Z]+)/?([0-9]+)?/?$

Но я думаю, что будет соответствовать что-то нежелательное, как это?

search/foo10

редактировать:

Я пытаюсь получить регулярное выражение, чтобы соответствовать следующим URIs:

  1. search/foo
  2. search/foo/
  3. search/foo/1
  4. search/foo/1/

ответ

0
^search/([a-zA-Z]+)(/)?([0-9]+)?\/?$ 

это будет работать? вы могли бы сделать '/' также в качестве шаблона соответствия и игнорировать $ 2. Для продолжения «/» и игнорирования $ 4 может следовать.

+0

Привет @Adi, спасибо за ваш ответ. См. Мое редактирование. Я не думаю, что это будет соответствовать 'search/foo', без обратной косой черты? – th3v0id

+0

@ Диллан - это сработало для вас? – Adi