【问题标题】:Redirect in htaccess to same page without a certain parameter在没有特定参数的情况下在 htaccess 中重定向到同一页面
【发布时间】:2016-03-05 00:45:34
【问题描述】:

例如重定向:

/somepage.php?parameter1=jon&parameter2=3&lang=en&parameter4=5

被重定向到:

/somepage.php?parameter1=jon&parameter2=3&parameter4=5

【问题讨论】:

    标签: regex .htaccess redirect url-rewriting url-redirection


    【解决方案1】:

    在这里,您可以独立于页面 somepage.php 的其他参数删除参数 lang

    RewriteCond %{QUERY_STRING}  (.*)(?:^|&)lang=(?:[^&]*)((?:&|$).*)
    RewriteCond %1%2 (^|&)([^&].*|$)
    RewriteRule ^somepage.php$ somepage.php?%2
    

    取自Official Apache mod_rewrite Documentation

    【讨论】:

    • 嗨@Bogdan,如果它对你有帮助,你不介意接受这个答案吗?或者您还有其他问题吗?
    【解决方案2】:

    试试这个:

    RewriteEngine on
    
    
    RewriteCond %{QUERY_STRING} ^perm1=([^&]+)&perm2=([^&]+)&perm3=([^&]+)&lang=([^&]+)&perm5=([^&]+)$
    RewriteRule ^index.php$ /index.php?perm1=%1&perm2=%2&perm3=%3&perm5=%5 [NC,L,R]
    

    另一种选择:

    RewriteEngine on
    
    
    RewriteCond %{THE_REQUEST} /index.php\?perm1=([^&]+)&perm2=([^&]+)&perm3=([^&]+)&lang=([^&]+)&perm5=([^&\s]+) [NC]
    
    RewriteRule ^index.php$ /index.php?perm1=%1&perm2=%2&perm3=%3&perm5=%5 [NC,L,R]
    

    【讨论】:

    • 更通用的东西?如果我有 n 个参数怎么办?谢谢!
    猜你喜欢
    • 2017-01-02
    • 1970-01-01
    • 1970-01-01
    • 2021-10-15
    • 1970-01-01
    • 2012-10-29
    • 1970-01-01
    • 1970-01-01
    • 2019-10-15
    相关资源
    最近更新 更多