2009-07-22 4 views
3

Я смотрел на некоторые сайты, которые притворяются, что в URL-адресе есть структура каталогов и задаются вопросом «как?».Как создать и использовать фальшивую структуру каталогов?

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

Я могу заставить домашнюю страницу работать на моем локальном сервере, но я не знаю, с чего начать с поддельной структуры каталогов. Пример: http://www.bankcharges.com/bank-charges-advice/ - для этого нет директории, но контент находится в базе данных.

Как они это сделали?

код этого я думаю, что это связано с это:

index.php:

<?php 

    include('includes/functions.php'); 

    $activeTab = "navhome"; 
    $sent = false; 

    $title = (isset($_GET['title']))? mysql_real_escape_string($_GET['title']) : 'Home';  
    $title = str_replace('-',' ', $title); 

    if($title != '') { 

     $sql = "SELECT * 
       FROM contents 
       WHERE name LIKE '%$title%' 
       LIMIT 1"; 

     $result = @mysql_query($sql);  
     $row = mysql_fetch_assoc($result);  
    } 

    //Set page title 
    $pagetitle = (isset($row['name']) && $title != 'Home')? ucwords($row['name']) : "Bank Charges"; 
?> 

functions.php:

<?php 

include('database.php'); 
include('settings.php'); 

//Nice URL's 
function url($str){ 
$arr = array('!','"','£','$','%','^','&','*','(',')','_','+','{','}',':','@','~','<','>','?','|',',','.','\\','/',';',']','[','\'');  
$str = str_replace($arr,"", str_replace(" ","-",strtolower($str))); 
return $str;   
} 

function isEven($v){ 
    if($v % 2 == 0) return true;   
} 

?> 

ответ

7

mod_rewrite является модуль Apache, который позволяет этому произойти. Другие веб-серверы имеют свои собственные реализации.

Для ознакомления с руководством для новичков ознакомьтесь с this blog post.

3

Может быть немного сложнее, если вы не знаете, с чего начать ... Вы должны переписать URL-то вроде этого

RewriteEngine On 

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteRule .* /index.php?url=$0 [L,QSA] 

И тогда, когда вы идете в URL, как http://www.bankcharges.com/bank-charges-advice/, ваш сервер фактически вызовет http://www.bankcharges.com/index.php?url=bank-charges-advice/. А затем в index.php вы можете обрабатывать этот запрос, как хотите (обычно, вытаскивая что-то из базы данных). Начните с обучения mod_rewrite.