Есть ли способ создать дружественный URL-адрес, например site.com/state/127, и при этом указывать на определенный файл, например index. php - PullRequest
0 голосов
/ 20 января 2020

Я создаю конечную точку api rest для ввода данных в базу данных. Я пытался переписать URL-адрес в этот формат http://example.com/src/public/endpoint/data. Publi c в URL - это папка с индексным файлом. php, в который будут перенаправлены все URL, но он не работает. Ниже мой код .htaccess.

RewriteEngine 
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ http://example.com/src/public/index.php?path=$1 [NC,L,QSA]

Я получаю адрес ссылки http://example.com/src/public/?path=state/127&_=1579497796272 в качестве конечной точки, когда ожидаю example.com/src/public/state/127. Я знаю, что делаю что-то неправильно, но не могу понять.

1 Ответ

0 голосов
/ 20 января 2020

Попробуйте:

RewriteEngine On
RewriteCond %{THE_REQUEST} \?path=(.*)&(.*)\sHTTP.*$
RewriteRule ^(.*)$ /src/public/%1? [L,R]
RewriteRule ^src/public/state/127 /src/public/?path=state/127&_=1579497796272 [L]

Сначала вы должны добавить on после RewriteEngine, что означает включение mod_rewrite. Вторая строка будет проверять запрос и получать часть строки запроса. Третья строка перенаправит запрос извне на дружественный. Последняя строка будет перенаправлять новую внутренне на правильный путь.

Примечание: , если все в порядке, замените R на R=301, чтобы иметь постоянное перенаправление.

...