Debian では URL の書き換えが機能しません

Debian では URL の書き換えが機能しません

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]

関連情報