PHP: Router Framework, на самом деле переход на «симпатичный» URL - PullRequest
1 голос
/ 11 февраля 2011

Я реализовал свою структуру маршрутизатора, где я в основном использую таблицу поиска, чтобы сказать, какой будет URL.

Мои исходные URL-адреса, в которых были какие-то уродливые вещи, например, domain.com?id=26, теперь будут иметь:

Но мой вопрос: Если все страницы будут просмотрены и перенаправлены, фактическая разметка HTML будет в 1 файле с именем my_page.php - правильно? Единственная разница будет в том, что my_page.php будет отображаться для пользователя по-разному, в зависимости от того, какой элемент был найден, верно?

Если так, то как мне сделать эту "маскировку" URL ??

Я имею в виду, как только я знаю, каким будет URL, как мне заставить страницу my_page.php обслуживать все данные для этой конкретной страницы, которая ищется?

Спасибо и извините, если вопрос запутанный:)

1 Ответ

2 голосов
/ 11 февраля 2011

Что вам нужно сделать в первую очередь, это потренироваться, если вы можете использовать «переписать». Если вы используете apache с «mod_rewrite», вы сможете его использовать.

  1. Создайте файл .htaccess в корневом каталоге ... domain.com/. Поместите туда следующее:

RewriteEngine on

RewriteCond %{REQUEST_FILENAME} !-f

RewriteCond %{REQUEST_FILENAME} !-d

RewriteRule ^(.*)$ index.php?r=$1 [L,QSA] 
  1. Теперь, что произойдет, это то, что все запросы в форме "domain.com/this-is-my-page" переписываются в форму "domain.com/index.php?r=this-is-my-page"

  2. Настройте маршрутизатор на поиск значения r в базе данных. Ваша таблица будет выглядеть так: ID | URL 55 | это-это-моя-страница 56 | это-это-мой-некст-страница

  3. так запустите что-то вроде "SELECT ID FROM router WHERE URL=LOWER('{$r}')". Конечно, не забудьте проверить наличие SQL инъекций.

  4. Теперь у вас есть свой идентификатор, и вы можете заполнять страницу, как и сейчас.

Надеюсь, это поможет:)

...