Как добраться.файлы htaccess, работающие с Apache VirtualHost

моя проблема в том, что мой .htaccess файл на моем локальном сервере не читается. Настройки в VirtualHost файл, похоже, всегда имеет приоритет.

я попробовал следующее:

  • включено mod_rewrite
  • изменил AllowOverride to All но это вызывает HTTP Error 500 Internal server error. Я пробовал его с различными вариантами, но он всегда вызывает ошибку 500.

я использую файл VirtualHost на Ubuntu, который выглядит как следующий:

<VirtualHost *:80>
ServerAdmin webmaster@localhost

DocumentRoot /web/website
<Directory />
    Options FollowSymLinks
    AllowOverride None
</Directory>
<Directory /web/website>
    Options Indexes FollowSymLinks MultiViews
    AllowOverride None
    Order allow,deny
    allow from all
</Directory>
</VirtualHost>

в своем под /web/website у меня есть следующие правила (которые не читаются):

RewriteEngine On
RewriteCond %{SCRIPT_FILENAME} !-d
RewriteCond %{SCRIPT_FILENAME} !-f
RewriteRule ^(.*)$ index.php?/ [L]
RewriteCond %{HTTP_USER_AGENT} ^facebookexternalhit
RewriteRule ^(.*)$ ogtags.php? [L,QSA]
ErrorDocument 404 /404
ErrorDocument 401 /401

одна вещь, которую я пробовал, которая работала, это добавление этих правил непосредственно в файл VirtualHost, но я хотел бы, чтобы мой .htaccess файл для работы! Это такая большая просьба? :(

Edit: поэтому я посмотрел в моем apache error.log и говорит Invalid command 'Action', perhaps misspelled or defined by a module not included in the server configuration ссылаясь на мою . Кажется, нет модуля под названием Действие, которое я могу позволить. Есть идеи?

Edit 2: я заметил, что мой пусто. Если это имеет значение, так как я использую VirtualHost файлов?

2 ответов


после просмотра моего apache error.log Я понял, что мне просто нужно включить Apache actions модуль:

sudo a2enmod действия

и не более 500 внутренних ошибок сервера!

надеюсь, это поможет кому-то вниз по линии :)


пропустить RewriteBase / директива

добавить после