mod_rewrite не работает

По какой-то причине я не могу заставить работать mod_rewrite. Я включил его, и он виден в phpinfo(), и у меня включены соответствующие разрешения. В чем дело?

000 по умолчанию:

<VirtualHost *:80>

    ServerAdmin ****@gmail.com

    ServerName ****.com

    DocumentRoot /var/www

    <Directory />
        Options FollowSymLinks
        AllowOverride All
    </Directory>

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

    ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
    <Directory "/usr/lib/cgi-bin">
        AllowOverride All
        Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
        Order allow,deny
        Allow from all
    </Directory>

    ErrorLog ${APACHE_LOG_DIR}/error.log

    # Possible values include: debug, info, notice, warn, error, crit,
    # alert, emerg.
    LogLevel warn

    CustomLog ${APACHE_LOG_DIR}/access.log combined

    Alias /doc/ "/usr/share/doc/"
    <Directory "/usr/share/doc/">
        Options Indexes MultiViews FollowSymLinks
        AllowOverride All
        Order deny,allow
        Deny from all
        Allow from 127.0.0.0/255.0.0.0 ::1/128
    </Directory>

</VirtualHost>

Вот мое правило переписывания для проверки...

RewriteEngine on
RewriteRule ^index.php?act=(.*)&p=(.*)$ site/$1/$2.html

Может ли кто-нибудь заметить что-то необычное?

1 ответ

Решение

Одна вещь, которую вы не упомянули, был модуль в /etc/apache2/mods-available/rewrite.load, что позволяет переписать движок. Если вы этого не сделали, вам нужно добавить ссылку в каталог /etc/apache2/mods-enabled; из каталога /etc/apache2/mods-enabled, войти ln -s ../mods-available/rewrite.load создать символическую ссылку на это.

Вы также можете использовать 'sudo a2enmod rewrite'

Другие вопросы по тегам