htaccess не работает на виртуальном хосте apache 2.4

Вот моя конфигурация виртуального хоста apache 2.4

<VirtualHost *:80>
    DocumentRoot /var/www/fd-pro/app-api/public_html
    ServerName subdomain.domain.com.au
    ServerAlias subdomain.domain.com.au

    <Directory /var/www/fd-pro/app-api/public_html>
        Options Indexes FollowSymLinks
        AllowOverride All
        Require all granted
    </Directory>

    ErrorLog ${APACHE_LOG_DIR}/subdomain-error.log
    LogLevel warn
    CustomLog ${APACHE_LOG_DIR}/subdomain-access.log combined
</VirtualHost>

Я также включил модуль перезаписи.

А в / var / www / fd-pro / app-api / public_html

есть htaccess, говорящий

Header set Access-Control-Allow-Origin "*"
Header set Access-Control-Allow-Methods "POST, GET, OPTIONS, DELETE, PUT"
Header set Access-Control-Max-Age "1000"
Header set Access-Control-Allow-Headers "x-requested-with, Content-Type, origin, authorization, accept, client-security-token"
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^ index.php [QSA,L]

Но все равно не работает!

Какие-нибудь подсказки, пожалуйста?

0
задан 13 January 2017 в 06:00
1 ответ

Вы не должны использовать .htaccess, если у вас есть доступ к основной конфигурации, добавьте свою конфигурацию в контекст виртуального хоста, и это избавит вас от многих хлопот, но если вы настаиваете.

Чтобы ответить на ваш вопрос: Чего не хватает в вставленном вами .htaccess, так это директивы:

RewriteEngine on

Поскольку загрузки mod_rewrite недостаточно, чтобы «включить» его функциональность на вашем сервере, вы должны добавить эту директиву, прежде чем добавлять какие-либо другие в контексте, в котором вы хотите использовать it.

Чтобы улучшить ваше решение:
Тем не менее, вам даже не нужен этот набор «устаревших» методов для mod_rewrite, поскольку single:

FallbackResource /index.php 

на вашем виртуальном хосте будет делать то же самое, без mod_rewrite и без него много директив для одного.

1
ответ дан 4 December 2019 в 16:23

Теги

Похожие вопросы