如何使用htaccess重写规则只是网址的一部分

时间:2015-11-04 02:10:51

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

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

时更改网址

所以

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

以上所有内容都应更改为其他网址,因为网址中的匹配/成员/字符串

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

我尝试了各种组合,但似乎没有用。我确信我做的事情确实是错误的,因为不是专家。感谢任何指针。

2 个答案:

答案 0 :(得分:0)

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

答案 1 :(得分:0)

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

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