Есть ли способ иметь хороший URL-адрес в PHP? любой URL-адрес PHP по умолчанию будет выглядеть следующим образом: http://example.com/something/?post=something Но возможно ли это так: http://example.com/something/user Можно ли удалить? post = без использования.htaccess
Вот пример кода, над которым я работал, который щелкнул по почте. Он будет обращаться к моей базе данных и загружать содержимое:
<?php
if(!isset($_GET['post'])) {
$q = mysql_query("SELECT * FROM posts WHERE postID='something'");
} else {
$id = $_GET['post'];
$id = mysql_real_escape_string($id);
$q = mysql_query("SELECT * FROM posts WHERE postID='$id'");
}
$p = mysql_fetch_object($q);
?>
Спасибо за ваше время!
Чтобы получить чистые URL-адреса, вам нужно будет использовать модуль mod_rewrite, но вы можете свести к минимуму его использование, если вы оставите синтаксический анализ URL-адресов на свой собственный скрипт и имеете только одну точку входа. Посмотрите, как это сделано в WordPress:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
Поэтому, если нет реального файла или каталога, который запрашивается в URL-адресе, каждый запрос перенаправляется на index.php
а затем анализируется каким-то внутренним скриптом сопоставления маршрутов.
Вот пример такого скрипта в подобном вопросе.
Вам необходимо определить маршрутизатор и диспетчер в вашем проекте. Маршрутизатор извлекает URL-адрес и диспетчер вызовов, которые связаны с url.in другим словом, вы должны использовать шаблон дизайна frontcontroller в своем проекте. Я предлагаю проверить этот учебник http://www.sitepoint.com/передний контроллер-паттерн-1/
Я предлагаю, чтобы чистый URL использовал одну из фрэш-фреймворков, которые по умолчанию имеют эту способность. если вы хотите использовать чистую php, вы должны использовать Маршрутизатор в своем проекте, что означает, что вы должны написать свою собственную инфраструктуру php. вы когда-нибудь работали с любой php-картой? Я предлагаю использовать laravel или cakephp для входа в рамки обучения php.