2011-11-02 153 views
0

我正在制作一个页面,其中的内容是动态的,但直到现在我只能够得到我想要的页面与变量,如(使用计算器作为一个例子):https://stackoverflow.com/questions?q=7980734动态网址并将标题添加到页面末尾url

但作为计算器看到他们有它作为

https://stackoverflow.com/questions/7980734/dynbamic-url-and-adding-a-the-title-to-the-end-of-the-page-url 

我只是想知道他们是如何做这样的(使用/),而无需创建每个问题的单个页面。

以及它们如何将标题添加到URL的末尾而不创建新的目录。 也就是说,如果您在

https://stackoverflow.com/questions/7980734/ 

键入它还是会把你的问题,然后将添加标题。

谢谢你的帮助!

回答

1

使用.htaccess文件重写大部分的时间一定URL的时候都要求就足够了。例如计算器可能会使用这样的:

RewriteEngine on 
RewriteRule ^questions/([0-9]+)/([_\-\&\'\,\+A-Za-z0-9-]+)?$ questions.php?q=$1 

这将使双方stackoverflow.com/questsions/1234/a-title-of-a-page和stackoverflow.com/questions.php?q=1234的相同的页面,所以在您的网站上,您需要使用URL的“整洁”版本(第一个)。

还可以阅读更多内容,并且可以自定义您的URL以满足您的需求。例如,一些地方读了它包括:

http://httpd.apache.org/docs/2.0/misc/rewriteguide.html

http://www.easymodrewrite.com/

+0

好吧,我得到stackoverflow.com/questsions/1234 poart,但我如何从网页的标题从数据库中,并把它放在网址中...我不清楚将如何发生 – ShadowZzz

+0

也,当我这样做...风格不再出现在网页上...最新错误? – ShadowZzz

+0

可能会导致您设置了样式表的相对路径(也可能是页面上的链接,js文件等)。如果您使用“/”开始链接到所有文件,那么它将从网站的根目录开始。 – Nick

1

这被称为URL重写,基本上你有一个解释在未来的URL处理程序,这并不意味着它是“精确”的目录结构,只是纲领性路径“东西”。

服务器端,它有例如/questions/ scrips可能是脚本/文件/应用程序,接受ID 7980734dynamic-url-and-adding-a-the-title-to-the-end-of-the-page-url

很容易友好的URL链接,你不必使用数字ID对在数据库中查找记录,只是使用文本,使其URL安全(PHP功能)。

+0

你好,谢谢你的回答......如果我有http://domain.com/view.php? 123456,我想要http://domain.com/view/123456/Question名称/我该怎么办?我对.htaccess不太好,所以任何帮助都不胜感激。 – ShadowZzz

0

你必须请求使用启用mod_rewrite在项目的.htaccess中启用它。另外,您必须查看apache配置httpd.conf并检查是否添加了mod_rewrite。因此,您可以将所有流量定向到项目中的URL解析器。 除此之外,你必须有一个在你的应用程序控制器,你在哪里得到的URL字符串,并确定URL和参数控制文件的逻辑。

看看这里:http://httpd.apache.org/docs/current/mod/mod_rewrite.html以获取更多信息。