Как избавиться от .php в запросе? [дубликат]

114
16 февраля 2018, 19:47

На данный вопрос уже ответили:

  • Объяснение кода: убрать расширение php в конце url 5 ответов

Как делать запрос вида http://stack.com/get.php?ask=my_ask без .php Вроде такого: http://stack.com/get?ask=my_ask

Answer 1

Здесь есть ответ Объяснение кода: убрать расширение php в конце url

Еще есть способ сложнее, он используеться во многих фреймворках на php В первом варианте идет прямой вызов отдельного файла. Можно написать правило которое будет все запросы(кроме картинок и т.д.) направлять на файл index.php и в нем смотреть что пользователь ввел в адресной строке и вызывать нужный скрипт уже самому с помощью php. . Если сервер Apache тогда использовать .htaccess Включить модуль

sudo a2enmod rewrite

Активировать ReWrite в вирутальном хосте После включения модуля ReWrite для Apache необходимо добавить «AllowOverride All» в вашем файле конфигурации для виртуального хоста. Этот параметр также может быть включен в глобальном масштабе, путем редактирования основного файла конфигурации apache: apache.conf

<Directory /var/www/>
   Options Indexes FollowSymLinks
   AllowOverride All
</Directory>

Потом в корне рядом с index.php разместить .htaccess с

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

RewriteCond - нужны, чтоб картинки и стили напрямую отдавались.

в скрипте в переменной $_SERVER['QUERY_STRING'] будет нужная вам часть запроса и в зависимости от нее можна буде строить логику

Пример можно увидеть в любом с фреймворков на php

READ ALSO
Разобраться с COOKIES php

Разобраться с COOKIES php

Нужно получить данные с tyty отправляю заголовки

166
libevent: как её прилинковать к проекту под Windows?

libevent: как её прилинковать к проекту под Windows?

Господа, у меня серьезный и важный вопрос, над которым я бьюсь головой об клавиатуру уже больше неделиЯ даже готов обсудить вознаграждение...

131
Вызов метода у нулевого указателя

Вызов метода у нулевого указателя

Сегодня состоялся следующий спор с коллегамиОни утверждали, что в таком коде нет никаких проблем, и все будет работать везде одинаково:

181
Как проверить есть ли у системы возможность открыть файл?

Как проверить есть ли у системы возможность открыть файл?

есть абсолютное имя файла QString filePathНадо из программы вызвать открытие этого файла стандартной для системы утилитой

138