【问题标题】:rewriting single url help重写单个 url 帮助
【发布时间】:2011-01-27 04:07:53
【问题描述】:

我正在尝试重写以下网址:

index.php?route=checkout/cart

/cart

使用:

RewriteRule ^index.php?route=checkout/cart$ /basket [L] 

但它似乎不起作用。有谁知道我做错了什么?

谢谢

【问题讨论】:

  • 避免显而易见:/cart/basket?

标签: mod-rewrite url-rewriting friendly-url


【解决方案1】:

RewriteRule 只测试URL path。您需要RewriteCond 来测试查询:

RewriteCond %{QUERY_STRING} ^route=checkout/cart$
RewriteRule ^index\.php$ /basket [L,R=301]

附加的R=301 标志将导致带有状态代码301(永久重定向)的外部重定向,而不是内部重定向。

如果你想反过来:

RewriteRule ^basket$ index.php?route=checkout/cart [L]

【讨论】:

    【解决方案2】:

    您需要发送重定向,以便新 URL 反映在浏览器地址栏中。所以,将R 添加到[L]

    RewriteRule ^index.php?route=checkout/cart$ /basket [R,L] 
    

    如果您希望搜索机器人忽略“丑陋”的 URL 和/或将其从索引中删除并改用新的,请发送 301 重定向。

    RewriteRule ^index.php?route=checkout/cart$ /basket [R=301,L] 
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2010-12-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多