.htaccess в Apache2 для URL-адресов php

Я пытаюсь сопоставить любой URL-адрес, например localhost / first , на localhost / first.php , используя mod_rewrite для Apache в Ubuntu 15.04.

Вот шаги.

  1. Установлен Apache2, PHP5 с использованием (apt-get apache2, php5) Включен PHP в Apache, поэтому phpinfo () выводит правильную информацию.
  2. a2enmod перезаписать, перезапустить apache
  3. В /etc/apache2/sites-enabled/000-default.conf добавлено следующее в нужном месте. <Каталог / var / www / html> Параметры Индексы FollowSymLinks MultiViews AllowOverride All Заказать разрешить, запретить разрешить от всех - Перезагрузите Apache

  4. .htaccess в / var / www / html ,

     RewriteEngine на
    RewriteCond% {REQUEST_FILENAME}! -F
    RewriteCond% {REQUEST_FILENAME}! -D
    RewriteRule ^ ([^ \.] +) $ $ 1.php [NC, L]
    
  5. chmod 644 /var/www/html/.htaccess[12118 visibleRestart Apache

Но запрос типа / localhost / second не преобразуется в second.php .

  1. Отредактировано .htaccess , последняя строка изменена на RewriteRule ^ second $ second.php . Но успеха нет.

  2. В Apache error.log я вижу ошибку:

    AH00687: Согласование: обнаружены файлы, соответствующие запросу: / var / www / html / second (согласовать невозможно).

Кто-нибудь, пожалуйста, помогите?

1
задан 7 September 2016 в 15:41
1 ответ
 Параметры Индексы FollowSymLinks MultiViews
 

Параметр MultiViews , вероятно, вызывает эту проблему. Это следует удалить. MultiViews (часть mod_negotiation) будет пытаться внутренне переписать запрос для / file (где некоторые / file <.ext> существуют в файловой системе) путем тестирования различные файлы, найденные в этом каталоге, и будут обслуживать файл, соответствующий соответствующему типу mime. Это происходит до того, как mod_rewrite запускается и может привести к конфликту (поскольку вы пытаетесь сделать то же самое с mod_rewrite).

3
ответ дан 3 December 2019 в 18:33

Теги

Похожие вопросы