2016-02-02 2 views
0

У меня входящий URL http://www.example.com/index.html?id=1234.htaccess соответствия базы данных 301 динамического перенаправления

У меня СЛОВА базы данных с 2-х столбцами: «идентификатор» и «URL»

мне нужно 301 редиректа соответствием параметра идентификатора URL (1234) на соответствующий URL-адрес, например:

HTTP: // www.example.com/index.html?id=1234 становится HTTP: // www.redirectedurl.com

Я пытался что-то подобное, как что объясняется here Я думаю, что правильный путь имеет простой .htaccess код, который использует файл php для сопоставления идентификаторов с URL-адресами в базе данных, но я не знаю, с чего начать.

Благодарим за помощь!

+0

просто используйте php. сначала получите свой url из базы данных '$ _GET ['id']', затем перенаправляйтесь на относительный URL-адрес. 'header ('Location:'. $ url);' – smoqadam

ответ

0
<?php 

    //Check if GET value is set 
    if(isset($_GET["id"]){ 

     //Retrieve values from database 
     $db = new PDO(/* connect to your database here */); 
     $stmt = $db->prepare("SELECT `url` FROM `table` WHERE `id`=? LIMIT 1"); 

     //If the statement doesn't execute 
     if(!$stmt->execute(array(trim($_GET["id"])))) exit("Could not connect to database!"); 

     //If there are no rows returned 
     if($stmt->rowCount()<1) exit("Could not find ID!"); 

     //Data is correct - redirect the user! 
     $row = $stmt->fetch(PDO::FETCH_ASSOC); 
     $url = $row["url"]; 
     header("Location: ".$url); 
     exit;    
    } else { 
     echo "No ID set!"; 
    } 
+0

спасибо большое! поэтому нет необходимости в htaccess? – emile

+0

'.htaccess' хорош для того, чтобы сделать URL-адреса более красивыми, например. * 'yoursite.com/index.php? id = 1234' * становится *' yoursite.com/1234' *, например. Однако для ваших целей '.htaccess' не будет полезен, поскольку он не может связываться с базой данных - и не может влиять на URL-адреса на других сайтах, только ваши собственные. – Ben

+0

удивительное спасибо !!! – emile

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