htaccess、PHP 拡張子を隠す方法

htaccess、PHP 拡張子を隠す方法

.htaccess ファイルを使用して PHP 拡張子を非表示にしようとしていますが、うまくいかないようです。ディレクトリに html ファイルがあり、.html 拡張子を使用していない場合は機能します。

これが私が持っているものです。

RewriteEngine On
RewriteBase /

RewriteRule ^([^/.]+)$ $1.php [L]

それで

http://www.mydomain.com/test

提起すべきです。

http://www.mydomain.com/test.php

それはこう言います:

Not Found

The requested URL /test was not found on this server.

答え1

サイトの conf ファイルで、MultiViews を削除することでこれを修正できました。その後、正常に動作するようになりました。

答え2

私は Ubuntu Server を搭載した独自の HomeServer を持っており、これを次のように実行しました。

  1. 以下の場所にあるapache2設定ファイルを編集する必要があります。/etc/apache2/apache2.conf

    sudo nano /etc/apache2/apache2.conf
    
  2. 次のような行を編集する必要があります:

    <Directory /var/www/html/>
      Option Indexes FollowSymbLinks
      AllowOverride None
      Require all granted
    </Directory>
    
    • AllowOverride Noneを に置き換えAllowOverride All、ターミナルで apache2 の書き換えモードを有効にする必要があります。

      sudo a2enmod rewrite
      
  3. その後、Apacheサービスを再起動します

    sudo service apache2 restart
    

今すぐ試してください。動作するはずです。

関連情報