Получение «Внутренней ошибки сервера» для дружественных URL-адресов

#amazon-web-services #apache #.htaccess #ubuntu #amazon-ec2

Вопрос:

Я использую шаблон Yii2 advance, и когда я включаю дружественный URL-адрес на своем EC2 ubuntu 20, я получаю Internal Server Error

Он отлично работает на моем локальном хосте в Windows 10.

в моем /var/www/html/frontend/ каталоге у меня есть это в моем .htaccess

 <IfModule mod_rewrite.c>
    Options  FollowSymlinks
    RewriteEngine On
</IfModule>
    
<IfModule mod_rewrite.c>    
    RewriteCond %{REQUEST_URI} ^/(admin)
    RewriteRule ^admin/assets/(.*)$ backend/web/assets/$1 [L]
    RewriteRule ^admin/css/(.*)$ backend/web/css/$1 [L]
    RewriteRule ^admin/js/(.*)$ backend/web/js/$1 [L]
    RewriteCond %{REQUEST_URI} !^/backend/web/(assets|js|css|js)/
    RewriteCond %{REQUEST_URI} ^/(admin)
    RewriteRule ^.*$ backend/web/index.php [L]
    RewriteCond %{REQUEST_URI} ^/(assets|css|js|images)
    RewriteRule ^assets/(.*)$ frontend/web/assets/$1 [L]
    RewriteRule ^css/(.*)$ frontend/web/css/$1 [L]
    RewriteRule ^js/(.*)$ frontend/web/js/$1 [L]
    RewriteRule ^images/(.*)$ frontend/web/images/$1 [L]
    RewriteRule ^(.*)$ frontend/web/$1 [L]
    RewriteCond %{REQUEST_URI} !^/(frontend|backend)/web/(assets|css|js)/
    RewriteCond %{REQUEST_URI} !index.php
    RewriteCond %{REQUEST_FILENAME} !-f [OR]
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule ^.*$ frontend/web/index.php
</IfModule>
 

и в этой папке /var/www/html/frontend/web/ у меня есть это в моем .htaccess

 Options  FollowSymLinks
IndexIgnore */*

RewriteEngine on

# if a directory or a file exists, use it directly
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d

# otherwise forward it to index.php
RewriteRule . index.php
 

и у меня есть это на моем сервере в /etc/apache2/sites-available/000-default.conf

 <VirtualHost *:80>
        ServerAdmin webmaster@blabla.com
        ServerName blabla.com
        DocumentRoot /var/www/html/frontend/web
        ServerAlias blabla.com

        ErrorLog ${APACHE_LOG_DIR}/error.log
        CustomLog ${APACHE_LOG_DIR}/access.log combined

        <Directory /var/www/html/frontend/web>
                Options FollowSymlinks
                AllowOverride all
                Require all granted
        </Directory>
</VirtualHost>
 

есть идеи, что я здесь делаю не так? Спасибо

Комментарии:

1. Поскольку это ваш экземпляр ec2, а не какой-либо общий хост, у вас должен быть доступ к журналу ошибок Apache для сообщения об ошибке

2. @ТобиасК. забыл об этом. Спасибо. я получаю /var/www/html/frontend/web/.htaccess: Invalid command 'RewriteEngine', perhaps misspelled or defined by a module not included in the server configuration , но я уже включил a2enmod rewrite и перезапустил apache тоже

3. @ТобиасК. Спасибо! получилось. пропустил sudo начало a2enmod rewrite :