【问题标题】:htaccess specific URL rewriting to new domainhtaccess 特定的 URL 重写到新域
【发布时间】:2013-11-30 16:14:40
【问题描述】:

我正在尝试将 olddomain.com 重定向到 newdomain.com,但我希望旧 URL 指向正确的新页面。旧网址为:/index.cfm?fuseaction=browse&id=50706&pageid=40,新网址为/all-products/

我试过了:

RewriteEngine On
RewriteRule ^index.cfm?fuseaction=browse&id=50706&pageid=40 http://newdomain.com/all-products/ [R=301,NC,L]

Rewrite 301 index.cfm?fuseaction=browse&id=50706&pageid=40 http://newdomain.com/all-products/

在 olddomain.com 的 .htaccess 文件中进行了各种调整,但我得到的只是 404 错误。创建测试链接:RewriteRule ^test http://newdomain.com/all-products/ [R=301,NC,L] 正确重定向。我需要在旧 URL 中转义一个字符吗?我不确定这是否相关,但我的主机禁用了 FollowSymLinks。

【问题讨论】:

    标签: apache .htaccess mod-rewrite redirect


    【解决方案1】:

    RewriteRuleQUERY_STRING 不匹配。您需要使用RewriteCond

    将此代码放入您的DOCUMENT_ROOT/.htaccess 文件中:

    RewriteEngine On
    
    RewriteCond %{QUERY_STRING} ^fuseaction=browse&id=50706&pageid=40(&|$) [NC]
    RewriteRule ^index\.cfm$ http://newdomain.com/all-products/? [R=301,NC,L]
    

    【讨论】:

    • 太棒了!有没有一种简单的方法可以让最终的 url 成为 /all-products/ 而不是 /all-products/?fuseaction=browse&id=50706&pageid=40 ?到目前为止,我的编辑只是打破了你的例子。
    • 由于目标 URI 中的尾随 ?,最终 URL 将没有查询字符串,即 http://newdomain.com/all-products/ 由于 301 缓存问题,请确保使用其他浏览器对其进行测试。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-09-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-05
    • 2020-09-14
    相关资源
    最近更新 更多