如何将多个干净的URL路径指向单个页面?

时间:2013-07-26 14:42:45

标签: clean-urls

(嗨!这是我第一次在Stack Overflow上问一些问题,经过多年的回答...谢谢!)

我有一个动态页面,我希望有固定的网址指向该网页的不同状态。因此,例如:" www.mypage.co"(/ index.php)是基页,它根据用户选择重新排列其内容。我希望能够指向" www.mypage.co/contentA"或" www.mypage.co/contentB"为了自动加载页面在" www.mypage.co"具有所需的内容。

从根本上讲,问题是审美问题。我知道我可以简单地写www.mypage.co/index.html?state=contentA来达到理想的目的,但我希望保持URL简单易读(即干净)。由于我的托管关系的限制,我也非常欣赏与服务器无关的解决方案(至少在LAM [PHP]堆栈中),如果可能的话。

另外,如果我对如何实现干净的URL有错误的假设,我会很乐意指导一个好的,全面的解释。我似乎无法找到一个......

2 个答案:

答案 0 :(得分:0)

如果您使用Apache,则可以使用mod_rewrite。我有一个这样的规则,其中多个restful url都转到同一页面,使用正则表达式并将旧url的部分移动到新url的参数中:

RewriteRule ^/testapp/(name|number|rn|sid|unii|inchikey|formula)(/(startswith))?/?(.*) /testapp/ProxyServlet?objectHandle=Search&actionHandle=drillIn&searchtype=$1&searchterm=$4&startswith=$3 [NC,PT]

特定的正则表达式接受像

这样的网址
  • testapp /名称
  • testapp /名称/ zuchini
  • testapp /名称/ startswith / zuchini

并将它们转发到同一页面。

我也使用UrlRewriteFilter作为Tomcat,但正如你提到的PHP那样,它看起来并没有用。

答案 1 :(得分:0)

您可以使用htaccess文件将所有请求重定向到一个位置,然后从那里确定要返回给客户端的内容。查看htaccess/dispatch system使用的Tonic