Как удалить расширение файла с адреса веб-сайта?

Я проектирую веб-сайт. Я хочу, чтобы мой адрес веб-сайта выглядел следующим образом:

Расширения имен файлов, такие как (PHP / JSP), скрыты

Я не хочу, чтобы мой сайт выглядел как http://something.com/profile.php. Я хочу, чтобы расширение .php было удалено в адресной строке, когда кто-то открывает мой сайт. Другими словами, я хочу, чтобы мой сайт был следующим: http://something.com/profile

В качестве второго примера вы можете посмотреть адрес веб-сайта StackOverflow.

Может кто-то, пожалуйста, помогите мне в этом? Благодаря!

Просто добавьте файл .htaccess в корневую папку вашего сайта (например, /home/domains/domain.com/htdocs/) со следующим содержимым:

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

Сначала проверьте, установлен ли модуль mod_rewrite. Затем, будьте осторожны, чтобы понять, как это работает, многие люди получают это назад.

Вы не скрываете URL-адреса или расширения. Что вы делаете, так это создать новый URL-адрес, который ссылается на старый, например

URL для размещения на вашем веб-сайте будет yoursite.com/play?m=asdf

или еще лучше

yoursite.com/asdf

Хотя каталог asdf не существует. Затем с установленным mod_rewrite вы помещаете это в .htaccess. В основном, он говорит, что если запрошенный URL-адрес НЕ является файлом и НЕ является каталогом, направьте его на мой скрипт:

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

Почти сделано – теперь вам просто нужно написать кое-что в свой PHP-скрипт для анализа нового URL-адреса. Вы хотите сделать это так, чтобы OLD работали тоже – то, что вы делаете, – это поддерживать систему, в которой переменная всегда точно совпадает с OR или создаёт таблицу базы данных, которая сопоставляет «дружественный URL-адрес» с идентификатором продукта. Примером может служить

/ Some-Cool-Video (который равен идентификатору продукта asdf)

Преимущество этому? Поисковые системы индексируют ключевые слова «Some Cool Video». ASDF? Кто будет искать это?

Я не могу дать вам подробностей о том, как программировать это, но возьмите строку запроса, откройте конец

 yoursite.com/Some-Cool-Video 

превращается в "asdf"

Затем установите для переменной m значение

м = ASDF

Таким образом, оба URL-адреса по-прежнему будут попадать в один и тот же продукт

 yoursite.com/play.php?m=asdf yoursite.com/Some-Cool-Video 

mod_rewrite может делать много других важных вещей, Google для этого и активировать его на вашем сервере (возможно, он уже установлен).

Ссылка: http://www.scriptscoop2.com/t/1a0c2b81484d/php-how-to-remove-file-extension-from-website-address.html

У вас разные варианты. Один из них создает папку с именем «профиль» и переименует ваш «profile.php» в «default.php» и помещает его в папку «profile». и вы можете отдавать приказы на эту страницу таким образом:

Старая страница: http://something.com/profile.php?id=a&abc=1

Новая страница: http://something.com/profile/?id=a&abc=1

Если вы не удовлетворены, оставьте комментарий для сложных методов.

Проблема создания каталога и хранения index.php в нем заключается в том, что

  1. ваши ссылки с меню перестанут работать
  2. Будет слишком много каталогов. Например, будет отдельный каталог для каждого вопроса здесь, в stackoverflow

Решениями являются 1. MOD REWRITE (как было предложено выше). 2. Используйте php-код для динамического включения других файлов в индексный файл. Читайте немного больше об этом здесь http://inobscuro.com/tutorials/read/16/

Вот простой способ PHP, который я использую.
Если запрашивается страница с расширением .php, новый запрос выполняется без расширения .php. Расширение .php больше не отображается в поле адреса браузера.

Я придумал это решение, потому что ни один из многих предложений .htaccess не работал для меня, и это было быстрее реализовать на PHP, чем пытаться выяснить, почему .htaccess не работал на моем сервере.

Поместите это в начало каждого файла PHP (желательно прежде всего):

 include_once('scripts.php'); strip_php_extension(); 

Затем поместите эти функции в файл «scripts.php»:

 //==== Strip .php extension from requested URI function strip_php_extension() { $uri = $_SERVER['REQUEST_URI']; $ext = substr(strrchr($uri, '.'), 1); if ($ext == 'php') { $url = substr($uri, 0, strrpos($uri, '.')); redirect($url); } } //==== Redirect. Try PHP header redirect, then Java, then http redirect function redirect($url) { if (!headers_sent()) { /* If headers not yet sent => do php redirect */ header('Location: '.$url); exit; } else { /* If headers already sent => do javaScript redirect */ echo '<script type="text/javascript">'; echo 'window.location.href="'.$url.'";'; echo '</script>'; /* If javaScript is disabled => do html redirect */ echo '<noscript>'; echo '<meta http-equiv="refresh" content="0; url='.$url.'" />'; echo '</noscript>'; exit; } } 

Очевидно, вам все равно нужно настроить Apache для перенаправления любого запроса без расширения на файл с расширением. Вышеупомянутое решение просто проверяет, имеет ли запрошенный URI расширение, если он запрашивает URI без расширения. Затем Apache перенаправляет файл с расширением, но только запрашиваемый URI (без расширения) отображается в поле адреса браузера. Преимущество состоит в том, что все ваши ссылки «href» в вашем коде могут по-прежнему иметь полное имя файла, то есть включая расширение .php.

На самом деле, самый простой способ манипулировать этим – это

  1. Откройте новую папку на своем сервере, например «Данные»,
  2. Поместите index.php (или index.html) в него

И тогда URL http://www.yoursite.com/data будет читать этот файл index.php. Если вы хотите принять его дальше, откройте в нем подпапку (например, «Список»), поместите еще один index.php в эту папку, и вы можете запустить http://www.yoursite.com/data/list этот файл PHP.

Таким образом, вы можете полностью контролировать это, очень полезное для SEO.

как Игорь, но должен работать без линии 2:

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

Удалите файл Extenstion через .htaccess

Исходный URL: http://ravinderrathore.herobo.com/contact.php

htaccess, чтобы удалить .php, .html и т. д. расширение файла из url.

 RewriteRule ^(.*)$ $1.php After Rewriting: http://ravinderrathore.herobo.com/contact RewriteEngine on RewriteCond %{THE_REQUEST} ^(.+)\.php([#?][^\ ]*)?\ HTTP/ RewriteRule ^index(.*)?$ index.php$1 [L,QSA] RewriteRule ^login_success(/)?$ login_success.php [L,QSA] RewriteRule ^contact(/)?$ contact.php [L,QSA] 

почти так же, как и первый ответ, но еще одно преимущество.

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

Просто добавьте, если у вас есть другое расширение файла на ваших сайтах

Тони, ваш сценарий в порядке, но если у вас есть 100 файлов? Нужно добавить этот код во все это:

include_once ( 'scripts.php');
strip_php_extension ();

Я думаю, что вы включаете меню в каждый php-файл (возможно, ваше меню отображается на всех ваших веб-страницах), поэтому вы можете добавить эти 2 строки кода только в свой файл меню. Эта работа для меня: D