高级URL和URL重写

时间:2013-02-26 19:05:00

标签: url url-rewriting

前几天我访问了asos.com网站。如果您在其网站上搜索“tshirt”,则生成的网址为“http://www.asos.com/search/tshirt?q=tshirt”。有没有人知道他们使用哪种技术来使它看起来像生成一个名为'tshirt'的页面,它基本上可以进行任何扩展?

此外,如果您选择产品,则网址会变为:“http://www.asos.com/ralph_lauren/polo/product.aspx”我知道他们没有针对每个品牌和商品的文件和文件夹,那么浏览器如何才能遵循此URL?

我不是在寻找任何代码,只是提示谷歌提供更多信息。

希望这听起来不太无知!

许多Ragards,
安德烈亚斯

2 个答案:

答案 0 :(得分:1)

在大多数情况下,这种功能(通常称为干净的URL,用户友好的URL或蜘蛛友好的URL)是通过服务器端重写实现的。将特定已知结构的所有请求指向单个后端脚本以进行处理。

现在,您提到的这些特定网址在我看来并不是干净网址的最佳示例。我将举例说明如何使用Apache mod_rewrite实现这样一个干净的URL(因为Apache非常受欢迎)。

http://somedomain.com/product/ralph_lauren/polo

之类的网址为例

您可以在mod_rewrite

中执行类似的操作
RewriteEngine On
RewriteRule /?product/(.*)/(.*) /product.php?cat=$1&subcat=$2 [L]

这将默默地(对最终用户)将结构/product/*/*的任何URL的传入请求重定向到名为/product.php的脚本,并将URL的第二和第三部分传递为{{1要由脚本评估的{}和cat参数。

答案 1 :(得分:0)

我不确定我理解你在问什么,但是在你举例说明你使用的是查询字符串,这是'?'之后的所有内容。在网址中。

在后端服务器上,它使用查询字符串中传递的变量来确定返回给您的内容。