php伪静态、url重写
各位前辈,本人初学php,想写个简单的博客(以学习php为主,没有用wordpress)。目前遇到的问题是:博客首页(http://www.mysite.com)展示了所...
各位前辈,本人初学php,想写个简单的博客(以学习php为主,没有用wordpress)。目前遇到的问题是:
博客首页(http://www.mysite.com)展示了所有博文的一些信息(标题、内容的前两段、标签、日期等),希望在点击标题后跳转到该文章的阅读页面,或是点击标签后跳转到显示该标签对应的所有文章的页面。但是不想在url中以 http://www.mysite.com/blog.php?postid=100这样的形式来跳转,希望能像wordpress那样实现http://www.mysite.com/blog/100这样的url。(我的设想是在blog.php里根据点击的跳转地址来动态显示相应信息,如设置文章标题为<h1><a href="./blog/100">title</a></h1>,点击后跳转到blog.php,在这里获得文章的id 100,然后查询数据库来显示,点击标签则显示相应的信息)。这是通过配置服务器的rewrite规则来实现吗?还是像wordpress那样也结合php程序来解析?或是其他的。哪种方式更高效和不那么麻烦?如果能解决这个问题,我打算采用smarty模板引擎来显示首页的文章信息:
{foreach $articles as $article}
<section>
<aside>
<time>{$article['posted_time']}</time>
{foreach $article['tags'] as $tag}
<a href="./blog/{$tag}">
{/foreach}
</aside>
<article>
<h1><a href="./blog/{$article['id']}">{$article['title']}</a></h1>
<p>{$article['content']}</p>
<a href="./blog/{article['id']}">read more</a>
</article>
</section>
{/foreach}
其中$aritlces是一个包含所有文章显示信息的数组,举例为:
while(has_post()){
$articles[] = array(
'posted_date' => $posted_date,
'tags'=>array($tag1,..$tagn),
'id'=>$post_id,
'title'=>$title,
'content'=>$content
);
}
(这里只是举例说明$articles包含的数组类型,当然实现代码不会是这样)
请问各位,我这种方法能实现所想要的吗?
如果可以实现,还望指教!在此谢过!! 展开
博客首页(http://www.mysite.com)展示了所有博文的一些信息(标题、内容的前两段、标签、日期等),希望在点击标题后跳转到该文章的阅读页面,或是点击标签后跳转到显示该标签对应的所有文章的页面。但是不想在url中以 http://www.mysite.com/blog.php?postid=100这样的形式来跳转,希望能像wordpress那样实现http://www.mysite.com/blog/100这样的url。(我的设想是在blog.php里根据点击的跳转地址来动态显示相应信息,如设置文章标题为<h1><a href="./blog/100">title</a></h1>,点击后跳转到blog.php,在这里获得文章的id 100,然后查询数据库来显示,点击标签则显示相应的信息)。这是通过配置服务器的rewrite规则来实现吗?还是像wordpress那样也结合php程序来解析?或是其他的。哪种方式更高效和不那么麻烦?如果能解决这个问题,我打算采用smarty模板引擎来显示首页的文章信息:
{foreach $articles as $article}
<section>
<aside>
<time>{$article['posted_time']}</time>
{foreach $article['tags'] as $tag}
<a href="./blog/{$tag}">
{/foreach}
</aside>
<article>
<h1><a href="./blog/{$article['id']}">{$article['title']}</a></h1>
<p>{$article['content']}</p>
<a href="./blog/{article['id']}">read more</a>
</article>
</section>
{/foreach}
其中$aritlces是一个包含所有文章显示信息的数组,举例为:
while(has_post()){
$articles[] = array(
'posted_date' => $posted_date,
'tags'=>array($tag1,..$tagn),
'id'=>$post_id,
'title'=>$title,
'content'=>$content
);
}
(这里只是举例说明$articles包含的数组类型,当然实现代码不会是这样)
请问各位,我这种方法能实现所想要的吗?
如果可以实现,还望指教!在此谢过!! 展开
1个回答
展开全部
你的想法是完全可行的,我举个例子告诉你
http://hi.baidu.com/changjie_vip/item/712b720b1c9781c5915718c1
你可以先看看这个文章,不懂的可以交流
apache一般都是在目录下创建.htaccess来实现伪静态,IIS不是这样的,这跟PHP本身没有关系,这是http服务器与客户端浏览器之间的约定
比如说
RewriteRule ([a-zA-Z]{1,})-([0-9]{1,}).html$
index.php?action=$1&id=$2
意思就是说当你访问类似 a_1.html里的时候 apache自动跳转到 index.php?action=$1&id=$2的地方,其中$1就是左边重写规则的第一个变量 ([a-zA-Z]{1,}),$2就是([0-9]{1,})的第二个变量
http://hi.baidu.com/changjie_vip/item/712b720b1c9781c5915718c1
你可以先看看这个文章,不懂的可以交流
apache一般都是在目录下创建.htaccess来实现伪静态,IIS不是这样的,这跟PHP本身没有关系,这是http服务器与客户端浏览器之间的约定
比如说
RewriteRule ([a-zA-Z]{1,})-([0-9]{1,}).html$
index.php?action=$1&id=$2
意思就是说当你访问类似 a_1.html里的时候 apache自动跳转到 index.php?action=$1&id=$2的地方,其中$1就是左边重写规则的第一个变量 ([a-zA-Z]{1,}),$2就是([0-9]{1,})的第二个变量
Storm代理
2023-07-25 广告
2023-07-25 广告
StormProxies是一家提供动态代理服务器服务的企业,旨在帮助用户更好地管理网络访问和安全。以下是一些关于StormProxies的IP动态代理服务的特点:1. 高匿名性:StormProxies的动态代理服务器具有高匿名性,可以有效...
点击进入详情页
本回答由Storm代理提供
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询