Как получить чистые URL в PHP

0

Есть ли способ иметь хороший 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);

?>

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

  • 3
    Узнать URL Rewritin с помощью .htaccess
  • 0
    Eiter использует правила .htaccess или, если вы работаете с Wordpress, вы можете покопаться в codex.wordpress.org/Rewrite_API , который является оболочкой для .htaccess
Показать ещё 3 комментария
Теги:
url
clean-urls

3 ответа

1

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

Вот пример такого скрипта в подобном вопросе.

  • 0
    Да уж; есть Google для "PHP URL маршрутизации"; вы найдете кучу приличных объяснений / учебных пособий о том, как работает единая точка входа с диспетчеризацией в коде.
  • 0
    Это .htaccess или PHP?
Показать ещё 3 комментария
0

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

0

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

  • 0
    Я никогда не работал с PHP-фреймворком, даже с Larvel.
  • 0
    Я предлагаю начать использовать Laravel. Он прост в использовании, а также прост в освоении. У laravel есть так много видеоруководств и простых документов для изучения. если вы раньше не использовали какой-либо фреймворк, то не стоит начинать писать собственную фреймворк.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню