使用.htaccess重定向请求

时间:2010-07-06 05:50:41

标签: apache .htaccess redirect

我需要使用.htaccess进行以下重定向

http://example.com => https://example.com/subdirectory
http://www.example.com => https://example.com/subdirectory
https://example.com => https://example.com/subdirectory
https://www.example.com => https://example.com/subdirectory

但是我不想在地址栏中显示子目录,url应该是https://example.com我的站点文件位于子目录中,但是我需要在地址栏中为每个请求隐藏它。

2 个答案:

答案 0 :(得分:1)

请尝试以下规则:

RewriteCond %{HTTPS} !=on [OR]
RewriteCond %{HTTP_HOST} !=example.com
RewriteRule ^ https://example.com%{REQUEST_URI} [L,R=301]
RewriteRule ^$ subdirectory [L]

答案 1 :(得分:0)

这个怎么样(以Gumbo的答案为基础):

RewriteEngine On

# Redirect direct subdirectory/ request to main domain
RewriteCond %{THE_REQUEST}  ^(POST|GET)\s/subdirectory
RewriteRule ^subdirectory/?(.*)$ https://example.com/$1 [R=301,L]

# Redirect www/non-https to https://example.com
RewriteCond %{HTTPS}       !=on           [OR]
RewriteCond %{HTTP_HOST}   !=example.com
RewriteRule ^.*$ https://example.com/$0 [R=301,L]

# Redirect (internally) to subdirectory/
RewriteCond %{REQUEST_URI} !^/subdirectory/
RewriteRule ^.*$ subdirectory/$0 [L]
相关问题