Как изменить внешний вид URL-адреса из PHP-скрипта

У меня есть PHP и HTML в одном файле, и я не совсем уверен, как сделать URL-адрес отображаемым как имя этой страницы.

Вот пример того, что я хотел бы сделать: допустим, что некоторая страница id = 1, а заголовок этой страницы – HelloWorld.

Вместо site.com/page.php?id=1 Я хотел бы, чтобы URL-адрес отображался как site.com/HelloWorld

Но проблема, с которой я столкнулась, заключается в том, что я узнаю только название страницы внутри этой страницы после запроса имени по id.

Учитывая настройку, которую я описал, есть ли способ заставить URL-адреса отображаться как имена страниц? А также, если кто-то ссылается на эту страницу, используя лучший URL-адрес с именем страницы, а не id, есть ли еще способ получить идентификатор и тем самым остальную часть содержимого страницы?

Благодаря!!

Вам нужно узнать больше о том, как работает .htaccess.

Вот хорошая ссылка, которая заставила меня начать:

.htaccess трюки и советы

Обновить:

Вот очень распространенная практика во многих рамках, где все запросы отправляются в index.php, а оттуда вы используете php для правильной страницы:

 <IfModule mod_rewrite.c> RewriteEngine On RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^(.*)$ http://www.site.com/index.php [L,R=301] </IfModule> 

Это на самом деле функция вашего HTTP-сервера (часто Apache), а не PHP.

То, что вы видите, происходит на сайтах с «дружественными» URL-адресами, состоит в том, что дружественное имя фиксируется в регулярном выражении, а затем передается на PHP.

Например:

 GET /HelloWorld 

отправляется на ваш веб-сервер .. веб-сервер анализирует его

 RewriteCond ^(A REGULAR EXPRESSION TO CAPTURE YOUR FRIENDLY NAME)$ RewriteRule page.php?id=(EXPRESSION FROM ABOVE) 

Таким образом, ваш PHP-скрипт всегда будет получать дружественное имя в качестве параметра.

Взгляните на «mod_write» для Apache – вы часто можете создавать правила для использования файла «.htaccess» в корневом каталоге.