2017-03-29 6 views
0

私はPhalconのウェブサイトを持っており、すべて正常に動作しますが(SSLを持っています)、フォーラム(https://www.example.com/forum/)にアクセスしたいのですが、.htaccessの設定に問題があります。Apache .htaccess、サブフォルダ

<IfModule mod_rewrite.c> 
    RewriteEngine On 
    RewriteBase/
    RewriteCond %{HTTP_HOST} !^www.example.com [NC] 
    RewriteRule ^(.*)$ http://www.example.com%{REQUEST_URI} [R=301,L] 
    RewriteCond %{HTTPS} !=on 
    RewriteRule ^.*$ https://%{SERVER_NAME}%{REQUEST_URI} [R,L] 
    RewriteRule ^$ public/ [L] 
    RewriteRule (.*) public/$1 [L] 
</IfModule> 

ホームドメインと/forum/フォルダの正しい設定はどのようなものです:

Phalconは、特定の設定がありますか?

答えて

1
RewriteEngine On 
RewriteBase/
RewriteCond %{HTTP_HOST} !^www\.example\.com [NC] 
RewriteRule^"http://www.example.com%{REQUEST_URI}" [R=301,L] 
RewriteCond %{HTTPS} !=on 
RewriteRule^"https://%{SERVER_NAME}%{REQUEST_URI}" [R,L] 
RewriteCond %{REQUEST_URI} !^/forum/ 
RewriteRule ^.*$ public/$0 [L] 
+0

ありがとう、それは働いています:) – vostronp

+0

素晴らしい!あなたはDeadooshkaの答えを受け入れることをお勧めします:) –

+0

ちょっと@Deadooshka、それは唯一の答えを投稿するには眉をひそめている。あなたがやったこと/起こっていることの小さな説明を追加できますか? –

0

Phalconのルート.htaccessファイルはすべてのトラフィックを/ publicフォルダにリダイレクトします。 最終的な書き換えルールに条件を1つ追加するだけです。ここに私の.htaccessファイルの一部は次のとおりです。

<IfModule mod_rewrite.c> 
    RewriteEngine On 

    # Force www 
    RewriteCond %{HTTP_HOST} !^$ 
    RewriteCond %{HTTP_HOST} !^www\. [NC] 
    RewriteCond %{HTTPS}s ^on(s)| 
    RewriteRule^http%1://www.%{HTTP_HOST}%{REQUEST_URI} [R=301,L] 

    # Remove trailing slash 
    RewriteCond %{REQUEST_FILENAME} !-d 
    RewriteCond %{REQUEST_URI} (.+)/$ 
    RewriteRule^%1 [R=301,L] 

    # Forward to public/ 
    RewriteRule ^(forum)($|/) - [L] 
    RewriteRule ^(.*)$ public/$1 [L] 
</IfModule> 

このRewriteRule ^(forum)($|/) - [L]はまた、あなたはあなたが複数のフォルダを許可するルールと同じくらいを追加することができますRewriteRule ^.*$ public/$0 [L]

前に追加する必要が重要な条件です。

RewriteRule ^(forum)($|/) - [L] 
RewriteRule ^(some-other-folder)($|/) - [L] 
... 
関連する問題