【问题标题】:Ionics Isapi Rewrite Filter - Special rule for ? in urlIonics Isapi 重写过滤器 - 特殊规则?在网址中
【发布时间】:2013-04-13 02:59:23
【问题描述】:

我对 ionics 重写过滤器相对较新,我正在尝试配置我的规则集以允许为我的应用程序添加额外的动态规则。我目前为我的应用程序的商店部分定义了以下规则。

RewriteRule ^/shop/(.*)/pages/(.*) /index.cfm?go=shop.products&content=$1&CurrentPage=$2 
RewriteRule ^/shop/(.*)/pages/(.*)/ /index.cfm?go=shop.products&content=$1&CurrentPage=$2 

RewriteRule ^/shop/(.*)$ /index.cfm?go=shop.products&content=$1 
RewriteRule ^/shop /index.cfm?go=shop.products 
RewriteRule ^/products.cfm  /index.cfm?go=shop.products 
RewriteRule ^/details.cfm   /index.cfm?go=shop.products 

服务提供商说我们不允许传入其他跟踪变量,除非它们以 & 符号作为前缀。

网址如下所示。

www.domainname.com/shop/category-of-products 
www.dimainname.com/shop/ 

使用它们的附加变量,它们必须执行以下操作

www.domainname.com/shop/category-of-products&additional-query-strings 
www.dimainname.com/shop/&additional-query-strings 

他们需要做的是

www.domainname.com/shop/category-of-products?additional-query-strings 
www.dimainname.com/shop/?additional-query-strings 

我需要做些什么来允许额外的?供参考

非常感谢任何帮助

【问题讨论】:

    标签: rewrite iirf


    【解决方案1】:

    您也许可以利用 $args 变量。

    尝试添加 &$args?在您重写的 URL 的末尾。这 ?最后确保 Nginx 不会再次自动添加查询字符串。

    例如

    RewriteRule ^/shop/(.*)$ /index.cfm?go=shop.products&content=$1&$args?
    

    【讨论】:

    • 没有很好的工作,似乎使网站崩溃并出现 500 错误。此错误与服务器上的应用程序无关,而是与服务器本身有关。似乎不允许使用 ?在网址上,您是否碰巧知道如何在正则表达式中使其更改?到 & 符号?提前致谢
    【解决方案2】:

    您可以尝试更改重写的正则表达式以允许可选地为 any 查询字符串参数。

    例如:

    RewriteRule ^/shop/(.*)$ /index.cfm?go=shop.products&content=$1

    变成

    RewriteRule ^/shop/(.*)(\?.*)?$ /index.cfm?go=shop.products&content=$1

    附加的(\?.*)? 使表达式匹配问号以及后面的所有内容0 或1 次。

    我现在无法测试它,但我认为您甚至可能需要通过在星号后添加 ? 来使第一个匹配组不贪心:

    RewriteRule ^/shop/(.*?)(\?.*)?$ /index.cfm?go=shop.products&content=$1

    顺便说一句:这会在您的正则表达式中添加三个问号,每个问号都有不同的含义 - 使前面的运算符不贪婪,匹配文字问号,并匹配前面的表达式 0 或 1 次。

    【讨论】:

      猜你喜欢
      • 2012-02-11
      • 1970-01-01
      • 2015-09-29
      • 2010-10-05
      • 2013-01-11
      • 1970-01-01
      • 1970-01-01
      • 2013-12-01
      • 2016-03-12
      相关资源
      最近更新 更多