2017-02-08 3 views
1

私はこのようになります私のルートに興味深いの.htaccessの設定があります。の.htaccessリダイレクトルートドメイン

local.com/portal-pages/home 

:だから私の本当のパスはこのようなものになるだろう

 
    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] 

を.htaccessはこのパスを次のように解釈します:

local.com/home 

私はlocal.comを打つと、それはforw local.com/homeにard。もし私がlocal.com/whateverを訪れれば、それは/何にでも行きます。

どうすればこの設定を行うことができますか?前もって感謝します。

また、すべてをhttpsに強制することはできますか?

+0

こと。 '$ 1'とは何ですか? – arkascha

+0

また、他のディレクティブは、まったく複雑な方法で何もしないダミーのように非常に奇妙です。 – arkascha

+0

私はlocal.comを打つとそれを明確にすることができますか私はそれがlocal.com/homeにリダイレクトするだけです。 com /それはちょうど/何にでも行きます。声明? – anubhava

答えて

1

あなたはhttp -> httpsため/home別のリダイレクトルールにランディングページを書き換えるために、1つの追加ルールを使用することができます:最初のリライト条件はまったく意味がありません

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] 
+0

ありがとうございます。私はそれが動作すると思うが、どのようにhttpsに任意のページを強制することができますか? – John

+0

OK、もう1つのルールが追加されました。 – anubhava

+1

ありがとうございます!あなたは男です! @anubhava – John