2017-09-01 26 views
1

私はAngular 4とPHPルーティングを使用しようとしていますが、両方を同時に使用するためには設定できません。私はそれをどちらか一方で動作させることができますが、両方で動作させることはできません。AngularとPHPルーティングを使用するようにhtaccessを設定してください

これは私のフォルダ構造である:私はPHPのルートを設定するよどこファイルapi/index.php

root 
│ index.html 
│ vendor.bundle.js  
| [..other angular files..] 
│ 
└─api 
│ │ index.php 
│ │ init.php 
│ │ 
│ └─vendor 
└─assets 
└─[..other project files..] 

です。私はこの.htaccessを使用する場合


だから、PHPルートは予想通り動作しますが、私はページを更新するとき、それはPHPルートとして扱いますので、角度の経路は、動作しません。

<IfModule mod_rewrite.c> 
    RewriteEngine on 

    RewriteCond %{REQUEST_FILENAME} !-f 
    RewriteRule . api/index.php [L] 

    RewriteBase/
    RewriteRule ^index.html$ - [L] 
    RewriteCond %{REQUEST_FILENAME} !-f 
    RewriteCond %{REQUEST_FILENAME} !-d 
    RewriteRule . /index.html [L] 
</IfModule> 

私はURLがルート/api/を含んで呼び出されるが、それは働いていなかった場合にのみリダイレクトするように.htaccessを変更しようとしました。このように:このコードで

<IfModule mod_rewrite.c> 
    RewriteEngine on 

    RewriteCond %{REQUEST_URI} api 
    RewriteRule . api/index.php [L] 

    RewriteBase/
    RewriteRule ^index.html$ - [L] 
    RewriteCond %{REQUEST_FILENAME} !-f 
    RewriteCond %{REQUEST_FILENAME} !-d 
    RewriteRule . /index.html [L] 
</IfModule> 

、角度のルートは、私はページを更新する場合でも、動作しますが、それは常にnullを返すように、PHPのルートは、index.phpファイルにリダイレクトすることはありません。

この問題を解決するには何が必要ですか?

答えて

1

私はhtaccessについて多くのことを知らないので、この回答が100%正しいかどうかはわかりませんが、私はそれを動作させることができました。

私が何をしたか

トップにラインRewriteBase /を移動し、このような最終.htaccessで、RewriteRule ^index.html..を削除することでした: でRewriteBase /今

RewriteCond %{REQUEST_URI} api 
RewriteRule . api/index.php [L] 

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule . /index.html [L] 

RewriteEngineこれは期待どおりに動作しています。私は誰かがより良い答えを持っている場合に備えて質問を開いたままにします。

関連する問題