2011-11-04 72 views
0

我正在尝试制作我的网站的网址和用户友好的网址。它基本上是一个静态的公司网站,但对于侧面菜单,我通过URL传递了一些变量来显示主选定菜单的子菜单。

例如:离岸人员配置是主菜单项之一,其子菜单项之一是程序员。当有人点击程序员时,我会通过URL传递主菜单和子菜单的ID来折叠所有其他菜单并提升打开的菜单。

我想在每个URL的末尾掩盖诸如?id=4&sid=4的内容。无法使用隐藏的输入元素,因为我正在修改此网站,而实际构建该网站的开发人员未使用表单。

回答

2

您正在寻找使用.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/

一般的好办法做到这一点(这样你就不会有很多的ID在你的URL)是在数据库中存储页面的“URL友好”名称(例如“页面名称”),然后在请求页面时,只需在数据库中搜索该名称,就可以知道它与哪个ID相关。

+0

啊这将花费很多时间,因为我对正则表达式不是很好,但是要做的很多,非常感谢您的帮助 –

1

在编写链接时将标识符转换为它们代表的词,并在访问它们时使用mod_rewrite将它们传回给PHP,在那里根据单词进行查找,然后再次找到标识符。

因此,链接成为/ offshore /程序员,然后查找ID的“离岸”和“程序员”,并显示适当的内容。

0

“掩蔽”是什么意思?是URL-rewriting,你正在寻找什么?如果是,则需要将别名(例如“程序员”)附加到URL,而不是GET-params。这些将通过URL重写转换为GET-params,然后通过PHP与ID相匹配。