Перенаправление / перезапись URL SEO с использованием баз данных, управляемых ссылками - PullRequest
0 голосов
/ 08 апреля 2010

Я искал слева и справа.

И я пытаюсь найти скрипт или метод, как я могу хранить ссылки в базе данных и использовать их для перенаправления.

Это проект электронной коммерции, и я ищу что-то для управления URL продукта и системы из базы данных.

Нечто подобное, как делает magento.

В основном, что-нибудь после домена говорит как domain.com/demo/12/my_iphone

, поэтому теперь demo/12/my_iphone будет отправлено в базу данных для запроса, а в базах данных будет целевой URL, который может быть productlisting.php?searchstring=iphones

Пользователь увидит ссылку domain.com/demo/12/my_iphone, но на самом деле он будет видеть productlisting.php?searchstring=iphones

В основном demo/12/my_iphone = productlisting.php?searchstring=iphones

А завтра, если пользователь хочет изменить demo/12/my_iphone на demo/12/myiphone, он может просто сделать это, используя простую форму, которая будет обновляться в базе данных.

Как мне этого добиться?

Ответы [ 2 ]

1 голос
/ 08 апреля 2010

Используйте mod_rewrite в apache в сочетании со скриптом PHP.

1) Создайте файл .htaccess и поместите его в папку, скажем www.yourdomain.com/a/.htaccess

Options +FollowSymLinks -Indexes
RewriteEngine On
RewriteRule .* index.php?%{QUERY_STRING} [L]

2) Создайте index.php, который обрабатывает все запросы

(psaudo-код)

<?php
/**
 * This script is simply parsing the url used, /demo/12/my_iphone
 */
require_once('library.php');
$request_uri = $_SERVER['REQUEST_URI'];

// parse $request_uri by splitting on slashes / 
$params = my_parse_function($request_uri); // <= parse_url() is helpful here!

$param1 = $params[0]; // "demo"
$param2 = $params[1]; // "12";       
$param3 = $params[2]; // "my_iphone";

// db-lookup based on the request
$url = fetchUrlFromDB($param1, $param2, $param3);
if($url){
    header('Location: '.$url); // $url = "productlisting.php?searchstring=iphones"
    die();
}
else{
     echo "invalid parameters";
}
?>
0 голосов
/ 08 апреля 2010

Было бы нетрудно запрограммировать такое решение, если оно будет достигнуто. Вы можете получить uri из $ _SERVER ['REQUEST_URI'] и передать его в parse_url , чтобы получить путь. Затем используйте путь для запроса к базе данных.

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