RewriteRule несколько папок глубоко - PullRequest
0 голосов
/ 26 марта 2012

Итак, у меня есть URL localhost/parent/admin/news/edit/2, и я хочу переписать его для запуска localhost/parent/admin/news/edit.php?id=2.В большинстве рассмотренных мною примеров RewriteRule (например, this ) для перезаписи сразу после домена использовалось следующее:

RewriteRule    ^products/([0-9]+)/?$    show_a_product.php?product_id=$1    [NC,L]

Однако, насколько я могуСкажите ^ обозначает начало строки, и, поскольку мой форвард находится далеко за пределами начала, он не будет работать.Таким образом, я придумал следующее:

RewriteRule    edit/([0-9]+)$    edit.php?id=$1    [NC,L]

Логически я чувствую, что это должно работать, и я использовал тест RegExr , чтобы проверить его, и этот сервис согласен.Однако, когда я добавляю флаг R для пересылки, кажется, что правило указывает страницу на localhost/C:/xampp/htdocs/parent/edit.php?id=2, из которой я могу предположить две проблемы:

  1. Он пересылает файл вмой компьютер вместо локального сервера (запускающий Access Forbidden!)
  2. Он все вместе вырезает раздел news/.

Надеюсь, кто-то может помочь мне решить эту проблему, какЯ провел пару часов, дурачясь с разными комбинациями, но безрезультатно.

Редактировать: я должен добавить, что причина, по которой я хочу поймать edit / #, заключается в том, что будет несколько разделов с редактированием/ # и я бы хотел поймать их всех одним правилом, а не писать несколько конкретных правил для каждого раздела.

1 Ответ

0 голосов
/ 27 марта 2012

Вот что должно работать:

RewriteRule /parent/admin/news/edit/([0-9]+)$ /parent/admin/news/edit.php?id=$1 [NC,QSA,L].
...