Drupal 8 + Lighttpd некоторые страницы выдают ошибку 404 из-за перезаписи URL

Мы работаем над настройкой нашего сервера Drupal 8 и столкнулись с проблемой чистых URL-адресов. Мы используем правила перезаписи URL для обработки чистых URL, но это создает проблему, потому что некоторые URL D8 содержат ".". Так, например, редактирование поля типа контента приводит к "node.webform.body" в конце URL. Наш сайт читает это как файл, а затем выдает ошибку 404.

Нужно ли обрабатывать чистые URL-адреса по-другому, или мы можем обновить правила перезаписи?

Мы бежим:

Lighttpd 1.4.49

Drupal 8.5.6

В нашем lighttpd.conf есть следующее:

url.rewrite-final = (
  "^/web/system/test/(.*)$" => "/web/index.php?q=system/test/$1",
  "^/web/([^.?]*)\?(.*)$" => "/web/index.php?q=$1&$2",
  "^/web/([^.?]*)$" => "/web/index.php?q=$1",
   "^/web/rss.xml" => "/web/index.php?q=rss.xml"
)

1 ответ

Вот что мы в итоге сделали: Мы добавили следующие правила перезаписи в url.rewrite-final. Они заботятся обо всех случаях 404-х годов, с которыми мы сталкивались до сих пор.

"^/web/([^.?]*node.*)$" => "/web/index.php?q=$1",
"^/web/((.*)[\.]+(.*)\/edit)$" => "/web/index.php?q=$1",
"^/web/((.*)[\.]+(.*)[\.]+(.*))$" => "/web/index.php?q=$1",
"^/web/([^.?]*manage\/.*[\.].*)$" => "web/index.php?q=$1"

Мы обеспокоены тем, что нам понадобится больше 404-х, которые не охвачены этими правилами. Итак, если у кого-то есть идеи по поводу лучшего решения, пожалуйста, дайте мне знать.

Другие вопросы по тегам