【问题标题】:Rewrite old dynamic .asp page to new page using .htacces使用 .htaccess 将旧的动态 .asp 页面重写为新页面
【发布时间】:2014-07-07 11:03:16
【问题描述】:

我用 php 创建了一个新网站。我必须从我的旧网站重写很多网址。但是,我需要将旧的动态 .asp 页面重写为新页面。

例如 旧网址 mysite.co.uk/productdetails.asp?pid=617(我有不少这样的,最后数字不同)

到新网址

mysite.co.uk/Casio-CDP-Digital-Piano-in-Black/302 

如您所见,pid 与末尾的新数字不同,因此我需要重写所有 url。我尝试了以下方法:

RewriteRule "^productdetails.asp?pid=617/$" /Casio-CDP120-Digital-Piano-in-Black/302 [L,NC,R=301]

但是我得到的错误信息是 productdetails.asp 页面不存在。

欢迎任何帮助

【问题讨论】:

    标签: .htaccess mod-rewrite url-rewriting


    【解决方案1】:

    您无法匹配规则模式中的查询字符串。您必须使用 RewriteCond%{QUERY_STRING} 变量:

    RewriteCond %{QUERY_STRING} ^pid=617/?$
    RewriteRule ^productdetails\.asp$ /Casio-CDP120-Digital-Piano-in-Black/302? [L,NC,R=301]
    

    【讨论】:

    • 感谢您的回复,但这不起作用。如果我在 617 之后删除 /$,则会显示正确的页面,但网址是:my site.co.uk/Casio-CDP120-Digital-Piano-in Black?pid=617。如何避免网址后面的 ?pid=617。
    • @Ria 抱歉,忘记添加?'s
    • 非常感谢。这有效并显示正确的网址。 :-)
    猜你喜欢
    • 2012-10-11
    • 2022-01-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-01-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多