mod_rewrite PHP API пользовательский ресурс

1

Я пытаюсь создать конечную точку API для студентов для проекта, над которым я работаю. URL-адрес будет похож на https://example.com/services/student/114365 где номер в конце - это идентификационный номер студента. Затем вы сможете читать, редактировать, удалять и т.д. Ученика с этой конечной точки.

Теперь URL, который я использую для этого, - https://example.com/services/student?id=114365. Есть ли правило.htaccess, которое я могу использовать для преобразования второго URL в первый?

Прошу прощения, если это дублированный вопрос. Я искал SO за 10 минут и не смог найти то, что искал.

Теги:
.htaccess
mod-rewrite

2 ответа

1
Лучший ответ

Вы можете использовать следующее правило в файле htaccess:

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([^/]+)/?$ /billing/services/student?id=$1 [QSA,NC,L]

Это переписало бы "биллинг/услуги/ученик /12345" на "биллинг/услуги/ученик? Id = 12345", "$ 1" содержит значение, сопоставляемое внутри шаблона регулярного выражения "([^/] +)"

  • 0
    Я не думаю, что это работает. Я проверил, что мой .htaccess работает, но код внутри не кажется. Это дает мне 404 не найдена ошибка. Имеет ли значение, что services / student находится в папке биллинга?
  • 0
    Как ваша структура папок? и где находится ваш файл htaccess?
Показать ещё 4 комментария
1

Общая структура правила перезаписи:

RewriteRule Pattern Substitution [OptionalFlags]

Попробуйте использовать следующее правило перезаписи.

RewriteRule ^services/student/([^/.]+)?$ /services/student?id=$1 [L]

Вы можете ссылаться на следующие ссылки для получения более полной информации о том, как формировать правила перезаписи.

http://www.sitepoint.com/apache-mod_rewrite-examples/

http://www.workingwith.me.uk/articles/scripting/mod_rewrite

Ещё вопросы

Сообщество Overcoder
Наверх
Меню