Это выглядит довольно просто, на самом деле:
RewriteEngine on
RewriteRule ^/?api/dev/v1/(.*)$ /api/v1/$1 [END]
В случае, если вы получаете внутреннюю ошибку сервера (http status 500), используя приведенное выше правило, есть вероятность, что вы используете очень старую версию apachehttp сервер. В этом случае вы увидите определенный намек на неподдерживаемый флаг [END]
в файле журнала ошибок http-серверов. Вы можете попытаться обновить или использовать более старый флаг [L]
, он, вероятно, будет работать так же в этой ситуации, хотя это немного зависит от ваших настроек.
Эта реализация также будет работать в конфигурации хоста http-серверов или в файле динамической конфигурации (файл ".htaccess"). Очевидно, что модуль перезаписи должен быть загружен внутри http-сервера и включен на хосте http. Если вы используете динамический файл конфигурации, вам нужно позаботиться о том, чтобы его интерпретация была включена вообще в конфигурации хоста и чтобы он находился в папке хоста DOCUMENT_ROOT
.
И общее замечание: вы всегда должны предпочитать размещать такие правила в конфигурации хоста http-серверов вместо использования файлов динамической конфигурации (".htaccess"). Эти динамические конфигурационные файлы добавляют сложность, часто являются причиной неожиданного поведения, их трудно отладить, и они действительно замедляют работу http-сервера. Они предоставляются только в качестве последнего варианта для ситуаций, когда у вас нет доступа к реальной конфигурации хоста http-серверов (читай: действительно дешевые поставщики услуг) или для приложений, настаивающих на написании своих собственных правил (что является очевидным кошмаром безопасности).
Чтобы это работало, модуль перезаписи должен быть загружен на http-сервер, очевидно. Кроме того, если вы решите использовать файл динамической конфигурации (файл стиля ".htaccess"), несмотря на то, что я объяснил выше, вам необходимо включить интерпретацию такого файла для запрошенного местоположения (см. AllowOverride
в документации apache). Файл необходимо поместить в папку DOCUMENT_ROOT
хоста http, отвечающего на запрос, и он должен быть доступен для чтения процессу http-сервера. И, конечно, он должен иметь правильный синтаксис. Если все, что дано, и все еще не работает, то вам определенно стоит заглянуть в файл журнала ошибок вашего http-сервера. Вот где двигатель будет регистрировать все проблемы, с которыми он сталкивается. В любом случае вам нужно следить за этим файлом при работе над реализациями в веб-среде.