Можно ли в Apache обслуживать данные из одного URL-адреса при отображении отдельного URL-адреса в браузере?

У меня есть многоязычное веб-приложение, которое зависит от языкового кода в URL-адресе. .

Пример:

example.com/zh-hans/title

Теперь клиенту нужна новая структура:

example.com/cn/title

Проблема в том, что приложение было построено на основе zh-hans . Поскольку эта часть URL-адреса является аргументом, необходимым для правильной работы приложения, ее изменение приведет к поломке приложения. Кроме того, это невозможно изменить в приложении, чтобы приспособиться. Чтобы отменить это, потребуются сотни часов работы. хотите предоставить старый URL для обратной совместимости. Однако мы хотите, чтобы пользователи старого URL-адреса даже не распознали, что страницы были переименованы - то есть мы не хотим, чтобы адрес изменился в их браузер.

https://httpd.apache.org/docs/2.4/rewrite/remapping.html (От старого к новому (внутреннему))

Тогда решение этой проблемы было бы таким же простым как это?

RewriteEngine  on
RewriteRule    "^/zh-hans/(.+)"  "/cn/$" [PT]
0
задан 21 March 2017 в 18:36
1 ответ
 RewriteEngine on
ПерезаписатьПоручень "^/zh-hans/(.+)" "/cn/$" [PT].

Если "клиент теперь хочет новую структуру: example.com/cn/title" то ваша директива перезаписи должна быть наоборот? Например:

RewriteRule    ^/cn/(.+)  /zh-hans/$1 [PT]

Вам все еще нужно изменить видимую структуру URL в вашем приложении, чтобы показать example.com/cn/title (в конце концов, клиент "хочет новую структуру"), которая затем будет внутренне переписана на example.com/zh-hans/title, чтобы ваше базовое приложение могло ее понять.

Однако, это все еще зависит от того, будет ли ваше веб-приложение читать URL так, как оно задумывалось. Если, например, он смотрит на REQUEST_URI (или эквивалент), то он все равно будет видеть example.com/cn/title.

.
0
ответ дан 5 December 2019 в 08:24

Теги

Похожие вопросы