2017-03-26 5 views
0

が、全てを書き換えるの.htaccess私は私の.htaccessでのリライトは/Apacheは1

を指すように私はセットアップをした正常に動作したルートを取得するには、Angular2アプリケーションを持っていることは今私の問題は、私はリダイレクトする必要があるということです私が書いたAPIは、私の現在の書き換えルールでは動作しません。ここで

RewriteEngine on 
RewriteCond %{HTTP:X-Forwarded-Proto} !https 
RewriteCond %{HTTPS} off 

RewriteRule ^/api$ http://127.0.0.1:8888/ [P,L] 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^/api/(.*)$ http://127.0.0.1:8888/$1 [P,L] 


RewriteRule^https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301,NE] 
RewriteCond %{REQUEST_FILENAME} -s [OR] 
RewriteCond %{REQUEST_FILENAME} -l [OR] 
RewriteCond %{REQUEST_FILENAME} -d 
RewriteRule ^.*$ - [NC,L] 
RewriteRule ^(.*) /index.html [NC,L] 

は最初の書き換えは私が

HOSTNAME/V1/APIの/ etc /などの/ etc/someParam

と第二に、私のAPIをヒットさせなければならない私の.htaccessです私のAngular2ルートが動作するはずです。

これらのルールの両方が私のAngular2アプリケーションに当てはまります。他のすべては私のAngular2アプリケーションに向けます

そして8888/API/V1/....:

は、どのように私は最初は/ API/****をlocalhostに書き換えたと言う2つのルールを作るのですか?

答えて

0

あなたはこれを分割したい:

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^/api/(.*)$ http://127.0.0.1:8888/$1 [P,L] 

二つの規則に入ります。

ソリューション:

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^/api/****$ http://localhost:8888/api/v1/... [P,L] 

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
ReweiteCond %{REQUEST_URI} !^/api/****$ [NC] 
RewriteRule ^/api/(.*)$ http://127.0.0.1:8888/$1 [P,L] 

もちろん、あなたがお奨め****...はそれに応じて交換してくださいました。

+0

私はこれを試しましたが、/ api/... getは/index.htmlにリダイレクトされました。次のことを仮定しましょう。https://somedomain.com/api/v1/endpointをhttp://127.0.0.1/api/v1/endpointにリダイレクトしたいのですが、ソリューションは機能しますか?私はindex.html書き換えルールを維持しながらそれを取るようには見えません – user316114

+0

それは**親管理者の.htaccessルールを上書きする可能性があるので、サブディレクトリ内に.htaccessファイルがないことを確認してください。 –

関連する問題