Apache htaccess:在一个重定向中进行多个转换

Apache htaccess:在一个重定向中进行多个转换,apache,.htaccess,redirect,mod-rewrite,Apache,.htaccess,Redirect,Mod Rewrite,我想做那些经典的301重定向: 如果没有,请在“www”前面加上前缀 如果没有,请添加“/shop/”目录 在这两种情况下,我都想保存请求的文件和可能的参数 而且(这就是重点)我希望在请求时避免多次重定向: 301-> 301-> 我只想要一个重定向。我怎样才能用最简单的方法来做呢?您可以使用以下方法: RewriteEngine on RewriteCond %{HTTP_HOST} !^www [OR] RewriteCond %{REQUEST_URI} !^/shop Rewrite

我想做那些经典的301重定向:

  • 如果没有,请在“www”前面加上前缀
  • 如果没有,请添加“/shop/”目录
  • 在这两种情况下,我都想保存请求的文件和可能的参数
而且(这就是重点)我希望在请求时避免多次重定向:

  • 301->
  • 301->
  • 我只想要一个重定向。我怎样才能用最简单的方法来做呢?

    您可以使用以下方法:

    RewriteEngine on
    RewriteCond %{HTTP_HOST} !^www [OR]
    RewriteCond %{REQUEST_URI} !^/shop
    RewriteCond %{HTTP_HOST} ^(?:www\.)?(.+)$
    RewriteRule ^ http://www.%1/shop%{REQUEST_URI} [NE,L,R=301]
    
    也许这个问题有帮助