【问题标题】:How to use htaccess Rewrite rule for just part of a url如何仅对部分 url 使用 htaccess 重写规则
【发布时间】:2015-11-04 15:52:39
【问题描述】:

我正在尝试在我的 httacess 文件中为部分 url 创建一个重写规则。如果请求包含特定字符串,我想重写 url。例如,仅当包含 /members/ 时才更改 url

所以

mydomain.com/members/  
mydomain.com/members/activity/ros1...  
mydomain.com/members/ay/bd...

上面的所有都应该更改为另一个 url,因为匹配 url 中的 /members/ 字符串

RewriteEngine on  
RewriteCond %{THE_REQUEST} ^GET /members/(.*)  
RewriteRule ^(.*)$ - [F,L]

RewriteEngine on    
RewriteCond %{REQUEST_URI} ^/members(.*)   
RewriteRule ^(.*)$ - [F,L]

我尝试了各种组合,但似乎不起作用。我确定我做错了什么,因为不是专家。感谢任何指针。

【问题讨论】:

    标签: apache .htaccess mod-rewrite url-rewriting


    【解决方案1】:
    RewriteCond %{REQUEST_URI} ^/members
    RewriteRule ^(.*)$ http://www.google.com/$1 [R, 301]
    

    我会尝试重定向 /members 的请求并将它们发送到另一个域。 (具有相同的请求 uri)。更多关于 mod_rewrite 的信息可以在https://httpd.apache.org/docs/2.4/mod/mod_rewrite.html#rewriterule找到。

    【讨论】:

      【解决方案2】:

      您在重写时使用了F 标志。该标志是将 Forbidden 状态发送回客户端。如果要将用户重定向到另一个 URL,则需要将该 URL 作为第二个参数传递给带有 R 标志的 RewriteRule 指令:

      RewriteEngine On
      RewriteRule ^members\b http://some-other-website.com [R]
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2013-06-09
        • 1970-01-01
        • 2011-12-06
        • 2016-11-19
        • 1970-01-01
        • 1970-01-01
        • 2014-05-18
        相关资源
        最近更新 更多