我一直在寻找一些网站,这些网站假装网址中有一个目录结构,并想知道'怎么样?'。
我正在控制工作中的网站,并查看了代码。他们有一个所有页面的数据库,它们是动态创建的。
我可以让我的本地服务器上的主页工作,但我不知道从哪里开始假目录结构。一个例子是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;
}
?>
答案 0 :(得分:7)
mod_rewrite是允许这种情况发生的apache模块。其他Web服务器有自己的实现。
有关初学者指南,请查看this blog post。
答案 1 :(得分:3)
如果您不知道从哪里开始,可能会有点复杂......您必须使用类似的内容重写URL
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule .* /index.php?url=$0 [L,QSA]
然后当您转到http://www.bankcharges.com/bank-charges-advice/
之类的网址时,您的服务器实际上会调用http://www.bankcharges.com/index.php?url=bank-charges-advice/
。然后在index.php中,您可以根据需要处理该查询(通常通过从数据库中提取内容)。首先学习mod_rewrite
。
答案 2 :(得分:0)
在google上搜索网址重写。