我正在使用一个我并不完全熟悉的新的无名框架,我很想知道如何在这种环境中从数据库中添加动态内容。
在索引控制器中,我被迫拥有一个索引函数来回答对index.html的所有请求。如果我想从数据源动态创建第二页,如何在不必为此新页面添加控制器的情况下进行此操作?所有请求目前都由htaccess路由。没有进入代码片段,我只是在寻找关于如何处理它的逻辑。
答案 0 :(得分:0)
好的,这个问题有点模糊,所以答案看起来有点模糊。
让我们举个例子来帮助想象。你有一个报纸网站,所以你提供很多文章 - 但都来自一个动态页面...
/articles.do?Article=Important-News-Item
/articles.do?Article=Cash-Strapped-Business-Goes-Into-Administration
等等。
然后你在网站上添加一些.htaccess(mod_rewrite)爱...
/Articles/Important-News-Item/
/Articles/Cash-Strapped-Business-Goes-Into-Administration/
然后将这些URI重写回articles.do页面。
因此,在您的articles.do页面中,您使用请求字符串(Article = Value)查询Article表并返回相关页面...
SELECT
Headline,
Content,
Image
FROM
Article
WHERE
RestfulId = 'Important-News-Item'
然后将其弹出到页面上。
如果我错过了这个问题上的观点,请大声喊。
mod_rewrite示例
这是上面示例的mod_rewrite规则,它将restful URI映射回articles.do URI。
RewriteEngine on
RewriteRule ^Articles/([^/\.]+)/?$ articles.do?Article=$1 [L,NC,QSA]
解释这个的最简单方法(不是解释这个的技术方法)是:
1)第一位(^ Articles /)查找以“Articles /”开头的任何地址 2)第二位(([^ /。] +)/)表示“文章后面的”/“和之后的下一个”/“之间的任何内容,在本例中是文章的标题。
您可以通过在末尾添加更多“([^ /。] +)/”段来捕获更多参数...
RewriteEngine on
RewriteRule ^Articles/([^/\.]+)/([^/\.]+)/([^/\.]+)/?$ articles.do?Article=$1&$2=$3 [L,NC,QSA]
在此示例中,您可以转换
/Articles/Important-News-Item/My-Key/My-Value/
到
articles.do?Article=Important-News-Item&My-Key=My-Value