URL 重写在 debian 上不起作用

URL 重写在 debian 上不起作用

当尝试启用 URL 重写时,我无法让它工作。我已使用命令启用它sudo a2enmod rewrite,并使用 重新启动了服务sudo service apache2 restart。但是,在根文件夹和子文件夹中,URL 重写不起作用。

PS:使用命令时我从服务器得到这个答案sudo a2enmod rewrite

Module rewrite already enabled

根据要求:

<VirtualHost *:80>
    ServerAdmin webmaster@localhost

    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
            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

答案1

Apache2 默认安装了 mod_rewrite。要检查是否是这种情况,请验证 /etc/apache2/mods-available/rewrite.load 是否存在。

      $ cat /etc/apache2/mods-available/rewrite.load

       LoadModule rewrite_module /usr/lib/apache2/modules/mod_rewrite.so

要启用并加载 mod_rewrite,请执行其余步骤。

      $ sudo a2enmod rewrite

上面的命令将在 /etc/apache2/mods-enabled 中创建一个符号链接。

   $ ls -al /etc/apache2/mods-enabled/rewrite.load
  lrwxrwxrwx 1 root root 30 Dec  9 23:10   /etc/apache2/mods-enabled/rewrite.load -> ../mods-available/rewrite.load

然后打开以下文件,并将每次出现的“AllowOverride None”替换为“AllowOverride all”。

      $ sudo vi /etc/apache2/sites-available/default

最后,重新启动Apache2

这是 .htaccess 文件的示例

    Options +FollowSymlinks
    RewriteEngine On
    RewriteRule index.php / [L,R=301]

相关内容