2010-08-24 3 views
0

Могу ли я переписать URL, используя значение 6 из ?cat, например, и проверять свою базу данных MySQL для значения 6 категории имя html с помощью PHP MySQL & если так как?PHP и MySQL URL переписывания вопрос

Текущий адрес.

http://localhost/index.php?cat=6&sub1=8&sub2=24&sub3=81 

Новый поисковый URL, отображаемый в браузере.

http://localhost/html/basics/forms/select-tag/ 

ответ

0

Отъезд mod_rewrite.

Вам нужно открыть файл .htaccess (если он не существует, создать его) и включить следующие строки. Обратите внимание, что RewriteEngine On следует писать только один раз.

RewriteEngine On # Turn on the rewriting engine 
RewriteRule ^html/basics/forms/select-tag/([0-9]+)/?$ index.php?cat=$1 [NC,L] 
0

Да. В основном вы захотите передать весь URL-адрес через скрипт маршрутизатора с помощью mod_rewrite. Файл .htaccess должен иметь что-то вроде этого:

RewriteEngine On 
RewriteBase/ 

#if it's an existing directory 
RewriteCond %{REQUEST_FILENAME} -d [OR] 
#...or an existing file 
RewriteCond %{REQUEST_FILENAME} -f 
#serve it up 
RewriteRule ^(.+) - [PT,L] 

#else, direct to index.php 
RewriteRule ^(.*)$ index.php?url=$1 [QSA,L] 

Тогда, в index.php вы можете иметь что-то вроде этого:

$request = explode('/', $_GET['url']); 

Какой бы иметь все ваши чистые сегменты URL-адрес в массиве $ запроса , Когда у вас есть эти значения, вы можете подключиться к базе данных, найти то, что представляет URL, и выводить страницу. Если он не найден, вы можете отправить заголовок 404 с сообщением «Страница не найдена».

header('HTTP/1.0 404 Not Found'); 
echo '<p>Page not found</p>'; 

Итак, это базовая чистая техника url. Если URL-адрес является ранее, грязный один, вы бы просто добавить некоторую логику, чтобы проверить, что и перенаправлять на правильный чистый URL:

if(isset($_GET['cat'])){ 
    //put some logic here 

    header("Location: http://localhost/".$the_clean_url); 
} 

Эта базовая техника должна решить вашу проблему с некоторыми лужения.

Смежные вопросы