Проблемы с Drupal 8 Nav Bars - получение не найдено - запрошенный URL не найден на этом сервере - PullRequest
0 голосов
/ 07 апреля 2020

У нас проблемы с ссылками на панель навигации на веб-сайте Drupal 8, работающем в Ubuntu 18.04 / Apache 2.4. При щелчке мы получаем:

Not Found - запрошенный URL-адрес не найден на этом сервере .

Некоторые предложили установить AllowOverride All в файле .htaccess каталога Document Root, но при попытке загрузить главную страницу веб-сайта возникает ошибка 500.

Мы предполагаем, что это может быть проблема конфигурации Apache или взаимодействие между Drupal 8 и Apache.

Предложения по методам отладки взаимодействия между Apache и Drupal 8?

Дополнительная информация:

  • Drupal 8 был установлен в каталоге / var / www/fred
  • Файл .htaccess приведен ниже, для ReWriteBase установлено значение / fred,
  • Виртуальный хост для сайта имеет Document Root, установленный в / var / www/fred/web
  • Виртуальный хост для этого сайта имеет: имя_сервера "mysite.edu/frede", где "/ frede" имеет псевдоним / fred "Document Root" / var / www/fred/web "

    • .conf-файл, содержащий определение VirtualHost, также содержит следующее: Опции Индексы FollowSymLinks AllowOverride All # Требовать все предоставленные

    #

    Настройки Apache / PHP / Drupal:

    #

    Защита файлов и каталогов от посторонних глаз.

    Требовать все отклоненные Заказ разрешить, запретить

    Не показывать списки каталогов для URL-адресов, которые сопоставляются с каталогом.

    Опции -Indexes

    Установить обработчик по умолчанию.

    Di indexoryIndex index. php index. html index.htm

    Добавить правильную кодировку для SVGZ.

    AddType image / svg + xml svg svgz AddEncoding gzip svgz

    Большинство следующих параметров PHP не могут быть изменены во время выполнения. См.

    sites / default / default.settings. php и

    Drupal \ Core \ DrupalKernel :: bootEnvironment () для настройки, которая может быть

    изменена во время выполнения.

    PHP 5, Apache 1 и 2.

    php_value assert.active 0 php_flag session.auto_start off php_value mbstring.http_input pass php_value mbstring.http_output pass php_flag mbstringen PHP 5.6 устарел $ HTTP_RAW_POST_DATA и выдает предупреждения, если это не # установлено. php_value always_populate_raw_post_data -1

    Требуется включить mod_expires.

    # Включить истечение срока действия. ExpiresActive On

    # Кэшировать все файлы в течение 2 недель после доступа (A). ExpiresDefault A1209600

    # Не разрешать кэширование сценариев PHP, если только они явно не отправляют заголовки кэша # сами. В противном случае все сценарии должны были бы перезаписать заголовки #, установленные mod_expires, если им нужно другое поведение кэширования. Это может # привести к сбою, если в начале процесса bootstrap возникает ошибка, и может # вызвать проблемы, если в подкаталоге установлен файл не-Drupal PHP. ExpiresActive Off

    Установить запасной ресурс, если mod_rewrite не включен. Это позволяет Drupal

    работать без чистых URL. Для этого требуется Apache версия> = 2.2.16. Если Drupal

    не доступен по URL верхнего уровня (то есть: http://example.com/drupal/ вместо

    http://example.com/), путь к index. php необходимо будет отрегулировать.

    FallbackResource /index.php

    Различные правила перезаписи.

    RewriteEngine при

    # Установить "protossl" в "s", если к нам обращались через https://. Это будет использовано позже #, если вы включите "www." зачистка или принудительное исполнение, чтобы гарантировать, что # вы не отскок между http и https. RewriteRule ^ - [E = protossl] RewriteCond% {HTTPS} в RewriteRule ^ - [E = protossl: s]

    # Убедитесь, что HTTP-заголовок авторизации доступен для PHP # даже при работе в качестве CGI или FastCGI , RewriteRule ^ - [E = HTTP_AUTHORIZATION:% {HTTP:Authorization}]

    # Блокировать доступ к «скрытым» каталогам, имена которых начинаются с точки. Это # включает каталоги, используемые системами контроля версий, такими как Subversion или # Git, для хранения управляющих файлов. Файлы, имена которых начинаются с точки, а также # управляющие файлы, используемые CVS, защищены директивой FilesMatch # выше. # # ПРИМЕЧАНИЕ. Это работает только при загрузке mod_rewrite. Без mod_rewrite # невозможно заблокировать доступ ко всем каталогам из .htaccess, поскольку # здесь не разрешено. # # Если у вас не установлен mod_rewrite, вы должны удалить эти # каталоги из своего Интернета root или иным образом защитить их от # загрузки. RewriteRule "/.|^.(?!well-known/)" - [F]

    # Если доступ к вашему сайту возможен как с, так и без 'www.' префикс, вы # можете использовать одну из следующих настроек, чтобы перенаправить пользователей на предпочитаемый вами URL, либо С, либо БЕЗ «www». приставка. Выберите ТОЛЬКО один вариант: # # Чтобы перенаправить всех пользователей на сайт с помощью «www.» префикс # (http://example.com/foo будет перенаправлен на http://www.example.com/foo) # раскомментируйте следующее: # RewriteCond% {HTTP_HOST}. # RewriteCond% {HTTP_HOST}! ^ Www. [NC] # RewriteRule ^ http% {ENV: protossl}: //www.% {HTTP_HOST}% {REQUEST_URI} [L, R = 301] # # Для перенаправления всех пользователей на сайт БЕЗ «www». префикс # (http://www.example.com/foo будет перенаправлен на http://example.com/foo) # раскомментируйте следующее: # RewriteCond% {HTTP_HOST} ^ www. (. +) $ [NC] # RewriteRule ^ http% {ENV: protossl}: //% 1% {REQUEST_URI} [L, R = 301]

    # Измените RewriteBase, если вы используете Drupal в подкаталоге или в # VirtualDocument Root и правила перезаписи не работают должным образом. # Например, если ваш сайт находится на http://example.com/drupal, раскомментируйте и # измените следующую строку: # RewriteBase / drupal RewriteBase / fred

    # # Если ваш сайт работает в VirtualDocument Root at http://example.com/, # раскомментируйте следующую строку: # RewriteBase /

    # # Установка AllowOverride All сгенерировала внутреннюю ошибку сервера # AllowOverride All

    # Redirect common PHP файлы на их новые места. RewriteCond% {REQUEST_URI} ^ (. )? / (Установить. php) [OR] RewriteCond% {REQUEST_URI} ^ (. )? / (Перестроить. php) RewriteCond% {REQUEST_URI} ! core RewriteRule ^% 1 / core /% 2 [L, QSA, R = 301]

    # Перезаписать установку. php во время установки, чтобы проверить, работает ли mod_rewrite RewriteRule ^ core / install. php core / install. php? rewrite = ok [QSA, L]

    # Передать все запросы, не относящиеся непосредственно к файлам в файловой системе, в # index. php. RewriteCond% {REQUEST_FILENAME}! -F RewriteCond% {REQUEST_FILENAME}! -D RewriteCond% {REQUEST_URI}! = / Favicon.ico RewriteRule ^ index. php [L]

    # По соображениям безопасности запретить доступ на другие PHP файлы на сайтах c. # Примечание: следующие условия URI не привязаны в начале (^), потому что Drupal может находиться в подкаталоге. Для дальнейшего улучшения # безопасности вы можете заменить '! /' На '! ^ /'. # Разрешить доступ к PHP файлам в / core (например, авторизовать. php или установить. php): RewriteCond% {REQUEST_URI}! / Core / [^ /] .php $ # Разрешить доступ для тестирования -specifi c PHP файлы: RewriteCond% {REQUEST_URI}! / core / modules / system / tests / https?. php # Разрешить доступ к пользовательскому фронт-контроллеру модуля статистики. # Скопируйте и адаптируйте это правило для непосредственного выполнения PHP файлов во внесенных или # пользовательских модулях или для запуска другого приложения PHP в том же каталоге. RewriteCond% {REQUEST_URI}! /Core/modules/statistics/statistics.php$ # Запретить доступ к любым другим PHP файлам, которые не соответствуют вышеуказанным правилам. # В частности, запретить автозагрузку. php от обслуживания напрямую. RewriteRule "^ (. + /. | автозагрузка). php ($ | /)" - [F]

    # Правила правильной подачи сжатых gzip файлов CSS и JS. # Требует, чтобы оба mod_rewrite и mod_headers были включены. # Обслуживайте сжатые gzip CSS файлы, если они существуют, и клиент принимает gzip. RewriteCond% {HTTP:Accept-encoding} gzip RewriteCond% {REQUEST_FILENAME} .gz -s RewriteRule ^ (. *). css $ 1. css .gz [QSA]

    # Serve gzip compressed JS files if they exist and the client accepts gzip.
    RewriteCond %{HTTP:Accept-encoding} gzip
    RewriteCond %{REQUEST_FILENAME}\.gz -s
    RewriteRule ^(.*)\.js $1\.js\.gz [QSA]
    
    # Serve correct content types, and prevent mod_deflate double gzip.
    RewriteRule \.css\.gz$ - [T=text/css,E=no-gzip:1]
    RewriteRule \.js\.gz$ - [T=text/javascript,E=no-gzip:1]
    
    <FilesMatch "(\.js\.gz|\.css\.gz)$">
      # Serve correct encoding type.
      Header set Content-Encoding gzip
      # Force proxies to cache gzipped & non-gzipped css/js files separately.
      Header append Vary Accept-Encoding
    </FilesMatch>
    

    # Various header fixes.
    <IfModule mod_headers.c>
      # Disable content sniffing, since it's an attack vector.
      Header always set X-Content-Type-Options nosniff
      # Disable Proxy header, since it's an attack vector.
      RequestHeader unset Proxy
    </IfModule>
    
...