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.

2 ответа

Решение

В файле conf для сайта я смог это исправить, убрав MultiViews. Потом все заработало нормально.

У меня есть свой собственный HomeServer с Ubuntu Server, и вот как я это сделал.

  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
    

Попробуйте сейчас, это должно работать.

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