好吧,这可能很容易,但我只是花了一点时间试图让它发挥作用。
我在一个带有文本区域(name=id(的页面上有一个小的GET表单。。当一个人输入一个ID号(这只是故事中的POST ID(时,我会将其显示在URL中,如下所示:
http://mywebpage.com/page.php?id=582
所以它只是从URL中获取id并在查询中使用它。我的表中有一个URL行,它是炒作的标题,就像这样:this-is-my-site
,它只是获取故事的标题,并通过一个函数非常快速地运行它。
我的问题是,我如何保持相同的格式,但当表单被提交以按ID查找故事时,我如何获得标题中的URL行来替换我的?id=
变量??
所以不是
http://mywebpage.com/page.php?id=582
它将返回
http://mywebpage.com/page.php/this-is-my-site.html
提前感谢!
if(isset($_GET['id'])){
$id=intval($_GET['id']); // sanitize it
// get row by id
//also we can redirect here to pretty url by
header('Location:'. $url)
}
else{
//get by URI
}
PS:我不知道如何在重写(和.htaccess(中使用数据库,但这个解决方案不需要它。使用$_SERVER['PATH_INFO']
使用htaccess无疑是您的最佳选择。
RewriteEngine On
RewriteRule /page/(.*)$ /page/page.php?id=$1
那会把你的页面改写成
www.yoursite.com/page/3
这对你的链接来说是非常SEO友好的。
在http://mywebpage.com/page.php?id=582
中,您可以检查url友好名称,并使用header('location: http://mywebpage.com/page.php/this-is-my-site.html');
重定向到具有漂亮名称的url。
之后,您可以检查名称(使用.htaccess(并从数据库中获取id。