.htaccess запрос на перезапись со старой конечной точки отдыха НОВАЯ конечная точка - PullRequest
0 голосов
/ 21 февраля 2019

Я пытаюсь включить в свой файл .htaccess условие для перезаписи запросов к конечной точке REST, которые больше не будут существовать после того, как я выполню некоторые обновления местоположения новой конечной точки.Существующий запрос выглядит примерно так:

https://www.example.com/applications/interface/?info&key=xxx&indentifier=xxx

Мне бы хотелось, чтобы новый запрос был похожей структурой, просто в другом месте, в папке сообщества:

https://www.example.com/community/applications/interface/?info&key=xxx&indentifier=xxx

Любая помощь будет принята с благодарностью.Мой существующий .htaccess выглядит следующим образом:

<IfModule mod_rewrite.c>
Options -MultiViews
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule \.(js|css|jpeg|jpg|gif|png|ico|map)(\?|$) /404error.php [L,NC]

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>

1 Ответ

0 голосов
/ 21 февраля 2019

Есть ли причина, по которой вы не можете просто перенаправить старый запрос на новый?Нужно ли внутренне переписывать URI?

Если перенаправление достаточно хорошее, вы можете сделать что-то вроде этого (обратите внимание, что я использую mod_rewrite и директиву not mod_alias 'Redirectэто потому, что оба они в конечном итоге будут применены к одному и тому же запросу и могут конфликтовать с вашим существующим правилом маршрутизации)

RewriteRule ^applications/interface/$ /community/applications/interface/ [L,R]

И вы захотите это прямо под RewriteBase.Это будет принимать запросы, которые выглядят как /applications/interface/, и перенаправлять их на /community/applications/interface/ со всеми параметрами строки запроса без изменений.Регулярное выражение будет соответствовать только этому URI конкретно, с завершающим /, а также.

Если вам нужно выполнить какое-то внутреннее переписывание, я бы предложил сделать это в вашей среде вместо того, чтобы пытаться использоватьmod_rewrite в файле htaccess.Вы настроили его, поэтому каждый запрос направляется на index.php, и этот код должен выяснить, что и куда нужно направить.

...