IIS 8 URL重写:可能在一个规则中返回不同的结果?

时间:2014-02-17 16:06:22

标签: php regex iis url-rewriting

Windows Server 2012,IIS 8;运行经典ASP和PHP的组合。

我想我已经知道了这个问题的答案,但万一我不像我想的那样聪明......

我有一个汽车经销商客户,他们为他们提供的每个品牌/型号组合创建了一个单独的页面,大约48页。他们希望每个人都指向一个友好的URL,例如

theirSite.com/shop-chevrolet-camaro-inventory 

=

index.php?p=123. 

这意味着要创建48个单独的重写规则,虽然没有任何内在错误,但它会让我感到沮丧。如果他们咨询我,首先,我会建议他们将每个作为模板文件创建,我会编写一个程序来动态加载它们,使用一个页面和一个重写规则。

那么,重写规则有可能以某种方式决定重写结果的一部分吗?以

/shop-chevrolet-camaro

其中camaro转换为第123页;克尔维特翻译成第124页; cruze翻译成125;等等?出于搜索引擎优化的目的,我不能指向一个中间页面并引入重定向,我们必须直接点击目标页面作为重写。

我运气不好吗?

1 个答案:

答案 0 :(得分:0)

我认为你可能仍然可以在这里只关注一页和一个.htaccess重定向;只是一个不同的方法。

您可以使用include从48个页面中的一个页面中提取数据并将其显示在“主”页面上。现在,为了找出要引入的页面,我在这里写了一个类似问题的答案:

https://stackoverflow.com/a/21714410/3293987

希望这会对你有所帮助。基本前提是采用“友好”名称(因为它出现在.htaccess中并将其传递给脚本而不是id号。然后,在脚本中,您将通过“友好的“名称而不是id。然后你可以编程方式找到需要加载的页面,并使用PHP的include来提取数据。

至于您对重定向的中间页面的关注,您不需要使用此解决方案进行重定向;您只需将现有“外围”页面中的数据加载到“主”页面即可。

我希望这个答案可以帮到你。

相关问题