.htaccess маска оригинальный URL - PullRequest
0 голосов
/ 23 января 2019

У меня есть этот URL:

localhost:1001/project/index.html

И если я напишу этот URL:

localhost:1001/project/index.html.twig

Я хочу, чтобы он был замаскирован на первый (localhost:1001/project.index.html), ноОбработанный URL должен быть вторым (не знаю, возможно ли это).

Я пробовал все это, но я думаю, что все неправильно в моем .htaccess в корне папки проекта, потому что ничего не работало какЯ хочу:

а)

RedirectMatch 302 /project/index.html.twig /project/index.html

б)

RedirectMatch 301 /project/index.html.twig /project/index.html

в)

RewriteCond %{HTTP_HOST} ^/project/index.html.twig$ [NC]
RewriteRule /project/index.html [R=301,L]

КОММЕНТАРИИ

Процесс, который я хочу получить:

  1. Я пишу в браузере: localhost:1001/project/index.html.twig
  2. Каким-то образом я хочу, чтобы мой .htaccess преобразовал этот URL в браузере вlocalhost:1001/project/index.html и увидеть этот URL в браузере
  3. Внутренне после этого я хочу обработать исходный URL: localhost:1001/project/index.html.twig

1 Ответ

0 голосов
/ 23 января 2019

Это, вероятно, то, что вы ищете, если хотите внешнее перенаправление:

RewriteEngine on
RewriteRule ^/?project/index\.html$ /project/index.html.trig [R=301]
RewriteRule ^/?project/index\.html\.twig$ /project/index.html [END]

Если вы хотите внутреннюю переписать, используйте этот вариант:

RewriteEngine on
RewriteRule ^/?project/index\.html\.twig$ /project/index.html [R=301]
RewriteRule ^/?project/index\.html$ /project/index.html.trig [END]

Эти правила должны работать аналогично, в конфигурации хоста http-серверов или в файле динамической конфигурации (файл стиля ".htaccess"). Вы определенно должны предпочесть первый вариант, если у вас есть доступ к нему. Если вам нужно использовать динамический файл конфигурации, позаботьтесь о том, чтобы его интерпретация была вообще включена и находилась в папке хоста DOCUMENT_ROOT.

В случае, если вы получаете внутреннюю ошибку сервера (http status 500), используя это правило, есть вероятность, что вы используете старую версию apache http server. В этом случае вы найдете определенный намек на неизвестный флаг [END] в файле журнала ошибок http-серверов. Попробуйте использовать более старый флаг [L], в этом случае он, вероятно, будет работать так же, хотя это зависит от вашей настройки.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...