htaccess排除特定文件夹

时间:2015-09-15 14:37:47

标签: .htaccess

对于我需要重定向的网站 域名没有www TO域名与www 和 http TO https

最终的网址必须始终为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]

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

这意味着:如果请求此网址,则不得重定向。

我找到的其他教程不起作用,抱歉: - (

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

3 个答案:

答案 0 :(得分:0)

也许是那样的

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]

答案 1 :(得分:0)

您可以在这两个重定向规则之前拥有跳过重定向规则

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]

答案 2 :(得分:0)

添加类似这样的内容作为第一个规则集可能有所帮助。 (可能想重新审视那些[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]