我怎样才能让www.mydomain.com/folder/?id=123 ---> www.mydomain.com/folder/xCkLbgGge
我想我的数据库查询页面来获得它自己的网址,像我见过的twitter等等等等。
我怎样才能让www.mydomain.com/folder/?id=123 ---> www.mydomain.com/folder/xCkLbgGge
我想我的数据库查询页面来获得它自己的网址,像我见过的twitter等等等等。
作为“弹头”的wordpress做这个名词流行这是已知的。 无论如何,虽然。
最后,你需要做的是有一个吸引你的所有入站流量,然后它的改革在服务器级别与在这个意义上你的PHP工作.htaccess文件,你仍然会保持?ID = 123的逻辑不变,但到客户端侧“/文件夹/ FHJKD /”将是可视的结果。
这里是我用一个类似的逻辑.htaccess文件的一个例子。(也是如此的WordPress为此事)。
RewriteEngine On
#strips the www out of the domain if there
RewriteCond %{HTTP_HOST} ^www\.domain\.com$
#applies logic that changes the domain from http://mydomain.com/post/my-article
#to resemble http://mydomain.com/?id=post/my-article
RewriteRule ^(.*)$ http://domain.com/$1 [R=301,L]
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ index.php?id=$1 [QSA,L]
这是什么会做的就是采取一切domain.com/后把它作为一个变量的index.php变量在这个例子中是“ID”这个,你必须设备最适合您的网站需要一个逻辑。
例
<?php
//the URL for the example here: http://mydomain.com/?id=post/my-article
if($_GET['id'])
{
$myParams = explode('/', $_GET['id']);
echo '<pre>';
print_r($myParams);
echo '</pre>';
}
?>
现在这个逻辑就必须要深刻得多,这仅仅是在一个基本水平的纯例子,但总体而言,特别是导致你与我假设一个数据库的工作,你会想确保$ myParams是干净的恶意代码,即可以注入到你的PHP或数据库。
上述的输出$myParams
经由print_r()
将是:
Array(
[0] => post
[1] => my-article
)
要使用它,你将需要至少是做
echo $myParams[0].'<br />';
或者你可以做这样的原因,大多数浏览器将添加一个最终的/
<?php
//the URL for the example here: http://mydomain.com/?id=post/my-article
if($_GET['id'])
{
//breaks the variable apart, removes any empty array values and reorders the index
$myParams = array_values(array_filter(explode('/', $_GET['id'])));
if(count($myParams > 1)
{
$sql = "SELECT * FROM post_table WHERE slug = '".mysql_real_escape_string($myParams[1])."'";
$result = mysql_query($sql);
}
}
?>
现在,这admitedly是一个非常粗略的例子,你想工作的一些逻辑,以防止有mysql的注射,然后将应用查询,就像您现在如何在拉你出来的文章仅使用ID = 123。
或者你也可以去一个完全不同的路线,并探索MVC(模型 - 视图 - 控制)的奇迹。 像CodeIgniter的东西是一个很好的容易的MVC框架开始使用。 但多数民众赞成由您决定。
这可以实现mod_rewrite
例如,通过.htaccess
文件。
在你.htacess,你需要添加RewriteEngine叙述上。
在此之后,你需要做一些regexs,使这小兽的工作。 我假设?id为folder.php?ID = 123。
例如,该文件夹片:重写规则^文件夹/([A-ZA-Z0-9 _-] +)/([0-9] +)HTML $ folder.php ID = $ 123?