【问题标题】:How redirect urls with special url?如何使用特殊 url 重定向 url?
【发布时间】:2015-08-11 07:04:14
【问题描述】:

我想将此类型的 url 重定向到我的主页

http://www.mywebsite.com/index.php?showuser=

http://www.mywebsite.com/

我可以用 .htaccess 做到这一点吗?怎么做。我试过了,但什么也没用。

redirectMatch 301 /index.php?showuser= http://www.mywebsite.com

RedirectMatch 301 /index.php\?showuser\= http://www.mywebsite.com

【问题讨论】:

    标签: .htaccess url-redirection http-redirect


    【解决方案1】:

    您无法匹配 RedirectMatch 正则表达式中的查询字符串。您需要使用 mod_rewrite 和 %{QUERY_STRING} 变量:

    RewriteEngine On
    RewriteCond %{QUERY_STRING} ^showuser=
    RewriteRule ^index\.php$ /? [L,R=301]
    

    【讨论】:

    • @RockySena 将 /? 替换为 /demo?。规则目标中的/ 只是“根”路径。
    • 谢谢你的工作......你能告诉我如果url中有空格并想重定向它该怎么办
    • @RockySena 将空格替换为%20。或使用`: /foo\ bar` 转义它。
    【解决方案2】:

    RedirectRedirectMatch 都不能匹配查询字符串。 RedirectMatch 中的 ? 实际上表示“前一个字符 0 或 1 次”,并将与“index.php”匹配。请注意,您也没有正确使用点。

    您可以使用 mod_rewrite 解决此问题。确保它已启用,并且您允许覆盖 FileInfo。然后使用以下指令:

    RewriteEngine on
    RewriteCond %{QUERY_STRING} ^showuser=$
    RewriteRule ^index\.php$ / [R,L]
    

    如果您希望在测试一切正常后永久重定向,请将 [R] 更改为 [R=301]

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-01-05
      • 2016-04-13
      • 1970-01-01
      • 1970-01-01
      • 2018-12-15
      • 2019-12-15
      • 2019-11-16
      相关资源
      最近更新 更多