【问题标题】:How do I redirect dynamic URLs with parameters?如何使用参数重定向动态 URL?
【发布时间】:2015-06-14 22:58:33
【问题描述】:

旧网址是这样的: http://mywebsite.com/index.php?mode=thread&id=284607

新的 URL 将是: http://mywebsite.com/threads/284607

如您所见,我想从旧的动态 URL 中获取 ID #,并将它们指向新的漂亮 URL。

我已尝试在此处和其他地方找到解决方案,但在从重定向中删除“mode=thread”部分时一直遇到问题。

感谢您的帮助!

更新:这是 .htaccess 文件中已有的一些其他代码。

RewriteCond %{REQUEST_FILENAME} -f [OR]
RewriteCond %{REQUEST_FILENAME} -l [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^.*$ - [NC,L]
RewriteRule ^(data/|js/|styles/|install/|favicon\.ico|crossdomain\.xml|robots\.txt) - [NC,L]
RewriteRule ^.*$ index.php [NC,L]

【问题讨论】:

    标签: .htaccess redirect http-status-code-301


    【解决方案1】:

    经过大量的谷歌搜索,我发现这个工作:

    RewriteCond %{QUERY_STRING} (^|\?)mode=thread&id=([0-9]+)($|&)
    RewriteRule ^index\.php$ http://mywebsite.com/threads/%2/? [R=301,L]
    

    【讨论】:

      【解决方案2】:

      在您的 .htaccess 文件中:

      RewriteEngine On
      RewriteCond %{QUERY_STRING} ^mode=thread
      RewriteCond %{QUERY_STRING} &id=([0-9]+)
      RewriteRule ^index\.php$ /threads/%1? [L,R=301]
      

      【讨论】:

      • 感谢您的快速响应!它现在重定向到:mywebsite.com/?mode=thread&id=284607
      • 是的,这就是你想要的不是吗?
      • 我非常非常感谢您的努力。它仍然只是从 URL 中删除 index.php。我确实仔细查看了 htaccess,并意识到还有一些其他行可能会导致一些问题。我以为他们以前被注释掉了。我已经更新了我最初的问题。
      • 您将我的答案放在您的 htaccess 文件中的什么位置?把它放在你已有的规则之上。
      猜你喜欢
      • 2017-03-21
      • 1970-01-01
      • 1970-01-01
      • 2020-01-21
      • 2016-05-31
      • 2022-01-09
      • 2019-11-15
      • 2015-06-16
      • 1970-01-01
      相关资源
      最近更新 更多