Как я могу сделать модуль перезаписи в Apache работает? - PullRequest
0 голосов
/ 01 октября 2018

Мод перезаписи для apache не работает на VPS-сервере LAMP (ubuntu 18.04)

Что я сделал:

1) Установите apache2, php-7.2 и mysql, затем настроите виртуальныйхост для apache (создал файл: /etc/sites-available/example.com.conf) - где example.com - мой домен

<VirtualHost *:80>
  ServerAdmin admin@example.com
  ServerName example.com
  ServerAlias www.example.com
  DocumentRoot /var/www/example.com/html
  ErrorLog ${APACHE_LOG_DIR}/error.log
  CustomLog ${APACHE_LOG_DIR}/access.log combined   
</VirtualHost>

2) Включите действующий виртуальный хост:

sudo a2ensite example.com.conf

3) Отключить значение по умолчанию:

sudo a2dissite 000-default.conf

4) Активировать Mod_Rewrites

sudo a2enmod rewrite

5) Добавить конфигурацию в /etc/apache2/apache2.conf

<Directory /var/www/example.com/html/>
    Options Indexes FollowSymLinks MultiViews
    AllowOverride All
    Order allow,deny
    allow from all
</Directory>

6) Перезагрузите сервер

sudo systemctl restart apache2

Главная страница работает, но если я нажму на ссылку для example.com/product-page-1, она скажет:

The requested URL /product-page-1 was not found on this server.

Что я делаю неправильно ???

ОБНОВЛЕНИЕ

.htaccess файл

<IfModule mod_rewrite.c>
<IfModule mod_negotiation.c>
    Options -MultiViews -Indexes
</IfModule>

RewriteEngine On

# Handle Authorization Header
RewriteCond %{HTTP:Authorization} .
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]

# Redirect Trailing Slashes If Not A Folder...
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} (.+)/$
RewriteRule ^ %1 [L,R=301]

# Handle Front Controller...
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ index.php [L]

# some redirects
Redirect 301 /create-account.html /register
...

</IfModule>

ОБНОВЛЕНИЕ 2

У меня 25 - 30 301 перенаправлений в htaccess, и если я не удаляю их, сервер не работает

The server encountered an internal error or misconfiguration and was unable to complete your request.

Если я смотрю в журнале ошибок appache2, я вижу это:

/var/www/example.com/html/.htaccess: Invalid command 'Register', perhaps misspelled or defined by a module not included in the server configuration

Какой модуль нуждается в apache fили 301 перенаправить на работу ???

...