Как активировать перезаписать URL из apache2 с помощью Linux - PullRequest
1 голос
/ 06 февраля 2020

Я недавно перевел все свои сайты с Windows на KUbuntu через виртуальную машину. И теперь я не могу получить доступ к части моего сайта, которая использует URL перезаписи ...

Я уже активировал rewrite модуль с sudo a2enmod rewrite и AllowOverride в apache2 conf и перезапустил apache но это все равно не работает ...

В начале я получил 404 ошибки (без default.conf AllowOverride вещей) И теперь у меня есть внутренняя ошибка 500. Как не знаю, как поступить дальше, я погуглил эту проблему, но мне ничего не помогло.

РЕДАКТИРОВАТЬ: Внутренняя ошибка 500 произошла от моего .htaccess:

Header add Access-Control-Allow-Origin "*"

Мой default.conf:

<VirtualHost *:80>
        ServerAdmin webmaster@localhost
        DocumentRoot /var/www/html
        ErrorLog ${APACHE_LOG_DIR}/error.log
        CustomLog ${APACHE_LOG_DIR}/access.log combined 
        <Directory /var/www/html>
                Options Indexes FollowSymLinks MultiViews
                AllowOverride all 
                Order allow,deny
                allow from all
                RewriteEngine on
        </Directory>
</VirtualHost>

Мой .htaccess

Options -Indexes
RewriteEngine on
# RewriteCond %{DOCUMENT_ROOT}%{REQUEST_URI} !-f
# %{HTTP_HOST} = domain
# %{REQUEST_URI} = /vl_web/...


# rewrite pages
RewriteRule ^login$  ./login.php [L]
RewriteRule ^reglement$  ./rules.php [L]
RewriteRule ^changelog$  ./changelog.php [L]
RewriteRule ^government/lspd/$  ./government/panel/?team=LSPD [L]
RewriteRule ^government/bcso/$  ./government/panel/?team=BCSO [L]



# 404 image
# RewriteRule \.(gif|jpe?g|png|bmp) ./assets/img/misc/404.png [NC,L]
# Ht Errors
ErrorDocument 404 /vl_web/assets/resources/hterr/index.php?error=404
ErrorDocument 403 /vl_web/assets/resources/hterr/index.php?error=403
ErrorDocument 500 /vl_web/assets/resources/hterr/index.php?error=500
ErrorDocument 503 /vl_web/assets/resources/hterr/index.php?error=503

Есть идеи?

1 Ответ

1 голос
/ 16 февраля 2020
  1. ошибка в моем .htaccess / var / www/html/vl_web/.htaccess: недопустимая команда 'Header', возможно, с ошибкой или определена модулем, не включенным в конфигурацию сервера

Header является частью mod_headers, который должен быть _enabled. mod_headers считается «расширением», другими словами:

Модуль со статусом «Расширение» обычно не компилируется и не загружается на сервер. Чтобы включить модуль и его функциональные возможности, вам может потребоваться изменить файлы конфигурации сборки сервера и перекомпилировать Apache. (Источник: https://httpd.apache.org/docs/current/mod/module-dict.html#Status)

Несмотря на то, что для этого часто требуется просто «включить» в конфигурации сервера. (Требуется перезагрузка веб-сервера.)

php ошибок (которые не случаются на windows, так что это довольно странно): неопределенный индекс: nom в /var/www/html/vl_web/government/panel/files/index/row2.php в строке 35, реферер: http://192.168.1.29/vl_web/government/

Различия в PHP версиях и / или различных (по умолчанию) уровнях error_reporting могут объяснить различия в поведении. Примечательно, что сообщения «Неопределенный индекс» стали E_WARNING в PHP 7 - ранее это был E_NOTICE.

Ошибки LimitInternalRecursion: запрос превысил предел 10 внутренних перенаправлений из-за вероятной ошибки конфигурации. Используйте LimitInternalRecursion, чтобы увеличить лимит, если это необходимо. Используйте 'LogLevel debug', чтобы получить обратную трассировку., Реферер: http://192.168.1.29/vl_web/

Это, скорее всего, вызвано перезаписью в вашем файле .htaccess.

Пожалуйста, добавьте содержимое вашего .htaccess файла к вашему вопросу.

Обратите внимание, что Windows - это нечувствительная к регистру файловая система, а Linux - нет , Эта же директива может не совпадать с Linux.


В стороне:

    <Directory /var/www/html>
            Options Indexes FollowSymLinks MultiViews
            AllowOverride all 
            Order allow,deny
            allow from all
            RewriteEngine on
    </Directory>

Вы вероятно хотите отключить MultiViews (вы явно включили его выше). Если вы много делаете с mod_rewrite (в .htaccess), то MultiViews может часто приводить к конфликтам (зависит от того, что вы делаете).

Вы действительно хотите включить каталог Indexes?

Order и Allow являются директивами Apache 2.2. Вы, очевидно, используете Apache 2.4, поэтому вместо этого следует использовать директиву Require.

Вам не нужно включать RewriteEngine здесь, если вы не используете его в этой области (вы не используете). Если вы используете .htaccess, то это, скорее всего, переопределит это в любом случае.

Другими словами, это, вероятно, должно быть написано:

    <Directory /var/www/html>
            Options Indexes FollowSymLinks
            AllowOverride All 
            Require all granted
    </Directory>
...