Перенаправить все в index.php - PullRequest
6 голосов
/ 19 апреля 2010

Я пытаюсь сделать чистые URL, взорвав $_SERVER['REQUEST_URI'] и затем переключаясь между результатами.

Однако, как только пользователь выходит за пределы index.php, я предполагаю, что мне нужно перенаправить его обратно на index.php, чтобы обработать URL, который он хочет получить. Как я могу сделать это?

Так, например, если пользователь переходит на www.domain.com/home/johndoe/..., я бы хотел, чтобы index.php (domain.com/index.php) был обработан, чтобы он мог обработать /home/johndoe/ через request_uri.

Ответы [ 3 ]

19 голосов
/ 19 апреля 2010

.htaccess:

RewriteEngine on
RewriteBase /
RewriteCond  %{REQUEST_FILENAME} !-f
RewriteCond  %{REQUEST_FILENAME} !-d
RewriteRule  ^(.*)$ index.php?param=$1 [QSA,L]
2 голосов
/ 19 апреля 2010

Вам потребуются изображения и другие файлы, которые будут отображаться в index.php.

RewriteEngine On

Включает двигатель Rewite

RewriteCond %{REQUEST_FILENAME} !\.(jpg|jpeg|gif|png|css|js|pl|txt)$

Если имя файла не равно JPG, JPEG ... которое нужно для index.php

RewriteRule ^(.*)$ index.php?q=$1 [QSA]

«Перенаправить» на index.php.

Используется:

С PHP $_GET q даст вам /articles/1987/12/20/Répa's birthday/

Если вы разделяете переменную в каждом слэше с помощью

list($type, $date_year, $date_month, $date_day, $title) = split('[/-]', $_GET['q']);

Вы получите именно то, что хотите.

2 голосов
/ 19 апреля 2010

Вы можете использовать Apache mod_rewrite для сопоставления URL-адресов на основе регулярных выражений, включая отправку всего на index.php,

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...