【问题标题】:301 redirect from query string to simple URL301 从查询字符串重定向到简单 URL
【发布时间】:2011-10-28 07:58:48
【问题描述】:

我仔细查看了“301 重定向”的前十页搜索结果,但找不到答案,所以这里......

我已经从一个不能为我的页面提供好的 URL 的糟糕的旧 CMS 转移到一个可以为我的关键页面设置 301 重定向的CMS。

当前网址:http://www.domain.com/?pid=22 新网址:http://www.domain.com/contact/

我正在使用 Wordpress,我当前的 htaccess 文件如下所示:

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]

</IfModule>

任何帮助都会很棒!

【问题讨论】:

    标签: linux http-status-code-301


    【解决方案1】:

    您必须检查“pid”变量中的值的查询字符串,然后如果该变量中的值与您要重定向的页面匹配,则进行重定向。你可以像这样使用“RewriteCond”和“RewriteRule”指令来做到这一点:

    RewriteEngine On
    RewriteBase /
    
    # Redirect pid=22 to http://www.domain.com/contact
    RewriteCond %{QUERY_STRING} ^pid=22$
    RewriteRule ^(.*)$ http://www.domain.com/contact [R=301,L]
    

    您可以重复“RewriteCond”和“RewriteRule”指令来创建额外的重定向。

    【讨论】:

      【解决方案2】:

      试试这个。您需要做的就是检查您是否在页面 X 上,然后重定向到页面 Y。将 RewriteCond 语句视为“if”语句。如果您需要更多重定向,只需复制最后两行并编辑路径。

      RewriteEngine On
      RewriteBase /
      RewriteCond %{HTTP_HOST} !^www\.domain\.com\/?pid=22$ [NC]
      RewriteRule ^(.*)$ http://www.domain.com/contact [L,R=301]
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2012-07-21
        • 2020-09-06
        • 1970-01-01
        • 2011-01-30
        • 1970-01-01
        • 1970-01-01
        • 2012-05-29
        • 2012-04-25
        相关资源
        最近更新 更多