Удалите расширение .php с помощью .htaccess - PullRequest
87 голосов
/ 26 октября 2010

Да, я прочитал руководство по Apache и искал здесь. По какой-то причине я просто не могу заставить это работать. Самое близкое, что я получил, - это удаление расширения, но оно указывает на корневой каталог. Я хочу, чтобы это просто работало в каталоге, который содержит файл .htaccess.

Мне нужно сделать три вещи с файлом .htaccess.

  1. Мне нужно, чтобы удалить .php

    а. У меня есть несколько страниц, которые используют вкладки, и URL выглядит как page.php # tab - это возможно?

    б. У меня есть одна страница, которая использует идентификатор сеанса, добавленный к URL, чтобы убедиться, что вы пришли из правильного места, www.domain.com/download-software.php?abcdefg.

Возможно ли это? Кроме того, нужно ли мне удалять «.php» из ссылок в моем заголовочном файле? Должен IE "<a href="support.php">support</a>" be <a href="support">support</a>?

  1. Мне бы хотелось, чтобы перед каждым URL-адресом указывалось "www", так что это не domain.com, а www.domain.com/page.
  2. Я хочу удалить все косые черты со страниц.

Я буду продолжать искать, пробовать и т. Д. Не вызовет ли проблема наличие подкаталога?

Ответы [ 13 ]

1 голос
/ 13 марта 2019

Попробуйте это
Следующий код определенно будет работать

RewriteEngine on
RewriteCond %{THE_REQUEST} /([^.]+)\.php [NC]
RewriteRule ^ /%1 [NC,L,R]

RewriteCond %{REQUEST_FILENAME}.php -f
RewriteRule ^ %{REQUEST_URI}.php [NC,L]
1 голос
/ 30 марта 2016

Я нашел 100% работающую Концепцию для меня:

# Options is required by Many Hosting
Options +MultiViews

RewriteEngine on

# For .php & .html URL's:
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([^\.]+)$ $1.php [NC,L]
RewriteRule ^([^\.]+)$ $1.html [NC,L]

Используйте этот код в корневом каталоге вашего веб-сайта .htaccess, например:

офлайн - wamp \ www \ YourWebDir

онлайн - public_html /

Если это не работает правильно, измените настройки вашего Wamp Сервер: 1) Щелкните левой кнопкой мыши значок WAMP 2) Apache 3) Модули Apache 4) Слева нажмите rewrite_module

1 голос
/ 07 января 2015

Если ваш URL в PHP похож на http://yourdomain.com/demo.php, то получается http://yourdomain.com/demo

Это все, что вам нужно:

создать файл .htaccess

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
#RewriteRule ^([^\.]+)$ $1.html [NC,L]
RewriteRule ^([^\.]+)$ $1.php [NC,L]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...