2015-09-06 2 views
1

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

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

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

ответ

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 не найденную ошибку. Имеет ли значение, что услуги/ученик находится внутри папки фактурирования? – blazerunner44

+0

Как ваша структура папок? и где находится ваш файл htaccess? – starkeen

+0

/billing/services/students/index.php?id=123. .htaccess - у студентов. – blazerunner44

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

Смежные вопросы