Как иметь чистые URL в переполнении стека

Есть ли способ получить красивый 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);

?>

Спасибо за ваше время!

0

Решение

Чтобы получить чистые 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 а затем анализируется с помощью внутреннего сценария сопоставления маршрутов.

Есть пример такого скрипта в аналогичный вопрос.

1

Другие решения

Я предлагаю, чтобы чистый URL использовал одну из фреймворков php, которые по умолчанию имеют эту возможность.
если вы хотите использовать чистый php, вы должны использовать Router в своем проекте, что означает, что вы должны написать свой собственный php framework.
Вы когда-нибудь работали с любым фреймворком PHP?
Я предлагаю использовать laravel или cakephp для начального этапа изучения php-фреймворков.

0

Вам нужно определить Маршрутизатор и Диспетчер в вашем проекте. Маршрутизатор извлекает вызовы URL и диспетчера, которые связаны с функцией url. Другими словами, вы должны выполнить FrontController дизайн шаблона в вашем проекте. Я предлагаю проверить этот учебник
http://www.sitepoint.com/front-controller-pattern-1/

0