Удалить расширение .php не работает

0

Я нашел много учебников и вопросов относительно удаления расширения.php в URL. Я пробовал много примеров, и до сих пор он все еще не работает. Это сводит меня с ума. Я также хочу поставить трейлинг-косую черту в конце URL-адреса, но сначала хочу сделать это первым. В настоящее время я пробовал это, что является одним из моих решений:

Options -MultiViews
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ $1.php [L]

а также это:

RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}\.php -f
RewriteRule ^(.*)$ $1.php

Ничего хорошего. Я работаю на своем ноутбуке с помощью Windows 7 и с помощью XAMPP. Я просто создал свой файл.htaccess и поместил его в localhost/myFolder. Когда я запускаюсь в браузере, в зависимости от моего решения, (i) несколько раз я не получил страницу, (ii) иногда внутреннюю ошибку сервера. Также, когда я запускаю, например, localhost/myFolder/index, URL-адрес будет перенаправлен на localhost/index без myFolder. Интересно, почему это происходит и надежда, что кто-то может дать мне ссылки или решения, потому что я пробовал так много из них. Заранее спасибо.

  • 0
    RewriteCond% {REQUEST_FILENAME} .php -f RewriteRule!. * \. Php $% {REQUEST_FILENAME} .php [L, QSA] пожалуйста, попробуйте это
  • 0
    @KristerAndersson спасибо, извините, я не понимаю в части обратной ссылки RewriteCond, вы можете показать пример? Я новичок в этом.
Показать ещё 7 комментариев
Теги:
.htaccess
mod-rewrite

3 ответа

0
Лучший ответ

Следующие работы отлично подходят для меня:

RewriteEngine On
RewriteBase /myFolder
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}\.php -f
RewriteRule ^(.*[^/])/?$ $1.php [L]
  • 0
    Спасибо, но это все еще не работает. Он перенаправляет меня на localhost / page вместо localhost / myFolder / page. Теперь мне интересно, где я должен положить файл .htaccess. Я действительно не знаю, в чем проблема.
  • 0
    Вы раскомментировали RewriteBase ? Поместите файл .htaccess в каталог myFolder .
Показать ещё 5 комментариев
0

Решение вашей проблемы:

Options +MultiViews
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{DOCUMENT_ROOT}/myFolder/$1.php -f
RewriteRule ^(.+?)/?$ $1.php [L]

Я просто заменил свой - знак в multiviews и начал работать на моем локальном хосте

0

Попробуйте этот код в /myFolder/.htaccess для скрытия.php extensin:

RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{DOCUMENT_ROOT}/myFolder/$1.php -f
RewriteRule ^(.+?)/?$ $1.php [L]
  • 0
    спасибо за ваше решение, оно не работает для меня. Я вижу, что URL - это хороший "localhost / myFolder / page", но страница не найдена. Я использовал решение Кристер Андерссон. еще раз спасибо
  • 0
    Вы должны использовать только 1 правило, а не несколько. Разместите свой полный .htaccess в своем вопросе.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню