У меня есть 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» в корневом каталоге.