.htaccess将根域重定向到子目录

时间:2017-02-08 19:58:41

标签: apache .htaccess

我的ROOT上有一个有趣的.htaccess配置,如下所示:

    RewriteEngine On
    # add a trailing slash if portal-pages/$1 is a directory
    RewriteCond %{DOCUMENT_ROOT}/portal-pages/$1 -d

    RewriteRule ^(.*[^/])$ %{REQUEST_URI}/ [L,R=301,NE]
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule ^(?!portal-pages/)(.*)$ portal-pages/$1 [L,NC]

所以我真正的道路就是这样:

 local.com/portal-pages/home

但.htaccess将此路径转换为:

 local.com/home

效果很好,但如果我点击local.com,我希望它转发到local.com/home。如果我点击local.com/ww只是去/ /无论如何。

如何使用此配置执行此操作?提前致谢。

另外,如何强迫所有内容加入https?

1 个答案:

答案 0 :(得分:1)

您可以使用一个额外的规则将着陆页重写为/home http -> https的另一个重定向规则:

RewriteEngine On

RewriteCond %{HTTPS} off
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [NE,R=301,L]

# add a trailing slash if portal-pages/$1 is a directory
RewriteCond %{DOCUMENT_ROOT}/portal-pages/$1 -d
RewriteRule ^(.*[^/])$ %{REQUEST_URI}/ [L,R=301,NE]

# forward landing page to /home
RewriteRule ^/?$ /home [L]

RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(?!portal-pages/)(.*)$ portal-pages/$1 [L,NC]