【问题标题】:htaccess exclude specific folderhtaccess 排除特定文件夹
【发布时间】:2015-12-11 21:03:48
【问题描述】:

对于我需要重定向的网站 不带 www 的域 带 www 的域 和 http转https

最终 URL 必须始终为 https://www.myshop.com ... 我用这个命令成功地解决了这个问题:

# if http, redirect to https
RewriteCond %{HTTPS} !=on
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

# if without www, redirect to www (301)
RewriteCond %{HTTP_HOST} !^www\.
RewriteRule ^(.*)$ https://www.%{HTTP_HOST}/$1 [R=301,L]

问题在于我必须排除特定文件夹。 要排除的 URL 是:http://www.mydomain.de/myfolder/filename.php

这意味着:如果此 URL 是请求的,则不能进行重定向。

我发现的其他教程没有用,抱歉:-(

感谢您的帮助和问候...

【问题讨论】:

    标签: .htaccess


    【解决方案1】:

    也许是这样的

    RewriteEngine on
    
    # if http, redirect to https
    
    RewriteCond %{HTTPS} !=on
    RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
    
    # if without www, redirect to www (301)
    RewriteRule ^http://www.mydomain.de/myfolder/filename.php$ - [L]
    RewriteRule ^.*\filename.php$ http://www.mydomain.de/myfolder/filename.php [R=301,L]
    

    【讨论】:

      【解决方案2】:

      你可以有一个跳过重定向规则 之前你有这2个重定向规则:

      RewriteEngine On
      
      # skip myfolder/filename.php from any redirects below
      RewriteCond %{THE_REQUEST} /myfolder/filename\.php[?/\s] [NC]
      RewriteRule ^ - [L]
      
      # if http, redirect to https
      RewriteCond %{HTTPS} !=on
      RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
      
      # if without www, redirect to www (301)
      RewriteCond %{HTTP_HOST} !^www\.
      RewriteRule ^(.*)$ https://www.%{HTTP_HOST}/$1 [R=301,L]
      

      【讨论】:

        【解决方案3】:

        添加这样的内容作为第一个规则集可能会有所帮助。 (不过可能想重新审视那些 [L,R] 选项。

        # check if myfolder is contained
        RewriteCond %{REQUEST_URI} ^[^/]*/myfolder(/.*)?$
        RewriteRule ^ http://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
        
        # if http, redirect to https
        RewriteCond %{HTTPS} !=on
        RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
        
        # if without www, redirect to www (301)
        RewriteCond %{HTTP_HOST} !^www\.
        RewriteRule ^(.*)$ https://www.%{HTTP_HOST}/$1 [R=301,L]
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2013-07-17
          • 2011-01-16
          • 1970-01-01
          • 2023-04-03
          • 2023-03-23
          • 2012-11-30
          • 2013-10-27
          相关资源
          最近更新 更多