Странный запрос, но мне действительно нужен ответ. Не могли бы вы помочь мне с помощью правил перезаписи, чтобы убрать косую черту в конце URL-адресов в Lighttpd.conf?
НАПРИМЕР:
**A** www.example.com/page/
**B** www.example.com/page
Я хочу, чтобы URL-адрес A был включен в семантику URL-адреса B.
Большое спасибо.
То, что вы пытаетесь сделать, звучит неправильно. Веб-сервер не обрабатывает URL-адреса запросов, которые видит браузер. Это проблема приложения. Ваше веб-приложение должно представлять URL-адреса в виде www.example.com/page
вместо того www.example.com/page/
что он делает сейчас.
Если вы не хотите изменять приложение, но все же хотите это желаемое поведение, вы можете рассмотреть возможность использования прокси-сервера фильтрации перед lighty, а затем фильтровать все возвращенные ссылки.
Не совсем по делу, но вы можете захотеть обратный эффект...
В любом случае, что касается кода lighttpd, это было бы что-то вроде этого:
url.redirect = ( "/page/" => "/page" )
url.rewrite-once = ( "/page" => "/page/" )
но, поскольку «/ page» не находит файл и пробует каталог «/ page /» (и перезапись, кажется, ничего не делает, чтобы скрыть это), возникает цикл перенаправления.
Тогда ваш реальный вопрос: можно ли запретить lighttpd перенаправлять на каталоги? К сожалению, я не нашел способа сделать это ... но я не стал глубоко искать, на самом деле я предпочитаю URL-адреса с конечной косой чертой (также визуально) ...
Предположим, вам нужен запрос /foo/bar
служить /foo/bar/index.html
, и /foo/bar/
перенаправить на /foo/bar
. Тогда вы можете сказать:
url.redirect = ("^/foo/bar/$" => "/foo/bar")
url.rewrite-once = ("^/foo/bar$" => "/foo/bar/index.html")
Перезапись непосредственно в индексный файл, а не в /foo/bar/
и привязка регулярного выражения перенаправления с помощью $
, избегает срабатывания правила перенаправления после перезаписи.