Возникли проблемы при использовании .htaccess для сокрытия расширения .php - PullRequest
0 голосов
/ 28 января 2012

У меня проблемы с использованием .htaccess.Это содержимое моего файла .htaccess

RewriteEngine On
RewriteCond %{REQUEST_FILENAME}!-d
RewriteCond %{REQUEST_FILENAME}!-f
RewriteRule ^([^.]+)\.php$ $1 [L]

Я открыл текстовый файл, вставил эти строки и сохранил его как .htaccess. Он показывал .htaccess, прежде чем щелкнуть правой кнопкой мыши файл .htaccess и изменил его.«открыть с помощью блокнота».Я думаю, что это не должно иметь никакого значения, но теперь это показывает пустое имя.

Основная проблема - когда я открываю свой локальный хост в браузере через wamp, папку, где я держал файл .htaccess,не отображается, или если я получаю к нему доступ, отображается эта внутренняя ошибка сервера. Теперь, если я удаляю файл .htaccess оттуда, он отображается в каталоге localhost и не выдает ошибку при попытке открыть его.

1 Ответ

1 голос
/ 28 января 2012

Если вы получаете 500 Internal Server Error, ваш файл .htaccess читается.Из того, что я вижу, вы можете пропускать пробелы до !:

  RewriteEngine On
  RewriteCond %{REQUEST_FILENAME} !-d
  #-----------------------------^^
  RewriteCond %{REQUEST_FILENAME} !-f
  #-----------------------------^^
  RewriteRule ^([^.]+)\.php$ $1 [L]

Но если вы хотите, чтобы ваши пользователи не видели расширение .php, RewriteRule в обратном направлении.Первая часть не должна содержать .php:

  RewriteEngine On
  RewriteCond %{REQUEST_FILENAME} !-d
  RewriteCond %{REQUEST_FILENAME} !-f    
  # The input URL has no PHP, but internally is served as .php 
  RewriteRule ^([^.]+)$ $1.php [L]
...