2016-06-11 3 views
1

私はphp angular mySqlで開発された単一のページアプリケーションを持っています。残りのAPIクラスを使用してmysql dbからデータを取得します。紺碧のアプリでの.htaccessファイルURLの書き換え

アプリケーションは、cPanel(linux)との共有ホスティングで正常に動作します。 Azureアプリケーションサービスでファイルをコピーしましたが、動作させることができません。次のメッセージが表示されます。

内部サーバーエラーが発生したため、ページを表示できません。

IISを実行していて、IISが.htaccessファイルをサポートしていないことを理解しています。これは、URLを書き換えています。 .htaccessファイルの

内容は以下のとおりです。

いくつかの研究を行い、web.configファイルに.htaccessファイルを変更したが、まだそれが仕事を得ることはありませんしている場合は
<IfModule mod_rewrite.c> 
RewriteEngine On 

RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_FILENAME} !-s 
RewriteRule ^(.*)$ api.php?x=$1 [QSA,NC,L] 

RewriteCond %{REQUEST_FILENAME} -d 
RewriteRule ^(.*)$ api.php [QSA,NC,L] 

RewriteCond %{REQUEST_FILENAME} -s 
RewriteRule ^(.*)$ api.php [QSA,NC,L] 
</IfModule> 

私のweb.configファイルは次のとおりです。

<?xml version="1.0" encoding="UTF-8"?> 
<configuration> 
<configSections> 
    <sectionGroup name="system.webServer"> 
     <sectionGroup name="rewrite"> 
      <section name="rewriteMaps" overrideModeDefault="Allow" /> 
      <section name="rules" overrideModeDefault="Allow" /> 
     </sectionGroup> 
    </sectionGroup> 
</configSections> 

<system.webServer> 
    <security> 

    </security> 
    <directoryBrowse enabled="true" /> 
    <caching> 
     <profiles> 
      <add extension=".php" policy="DisableCache" kernelCachePolicy="DisableCache" /> 
      <add extension=".html" policy="CacheForTimePeriod" kernelCachePolicy="CacheForTimePeriod" duration="14:00:00:00" /> 
     </profiles> 
    </caching> 
    <rewrite> 
    <rules> 
    <rule name="rule 1K" stopProcessing="true"> 
     <match url="^(.*)$" ignoreCase="true" /> 
     <action type="Rewrite" url="/php/services/api.php?x={R:1}" appendQueryString="true" /> 
    </rule> 

     </rules> 
    </rewrite> 
    <defaultDocument> 
     <files> 
      <remove value="index.php" /> 
      <add value="index.php" /> 
     </files> 
    </defaultDocument> 



</system.webServer> 

+0

php apiアプリケーションをルートディレクトリの '/ php/services /'フォルダに入れますか? 'web.config'を削除してphp apiアプリケーションを直接ブラウズするとうまくいくでしょうか? –

答えて

0

あなたのweb.configファイルの内容をよると、すべての要求は、ルートディレクトリの下にphp/services/api.phpスクリプトに書き直しになります。パスにスクリプトが存在することを確認することができます。

また、このメッセージが表示されたときに表示されるエラーメッセージによれば、サーバー上のコードについて何か問題があることを意味します。

私の経験上、PHPスクリプトで必要とされる依存関係が不足している可能性があります。 WebアプリケーションのKUDUコンソールサイトにログインして、アプリケーションの完全性を確認できます。 KuduコンソールサイトのURLはhttps://<your_site_name>.scm.azurewebsites.netである必要があります。

最新の情報は、お気軽にお知らせください。