2016-06-11 65 views
1

我有一個在Php angular mySql中開發的單頁面應用程序。它使用rest api類從mysql db中獲取數據。。azure app中的.htaccess文件url rewriting

應用程序在與cPanel(linux)的共享主機中正常工作。我在Azure應用程序服務中複製了這些文件,但我無法使其工作。我收到以下消息:

由於發生內部服務器錯誤,無法顯示頁面。

據我所知,它運行IIS和IIS不支持重寫URL的.htaccess文件。

的.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> 

如果已經做了一些研究,改變了htaccess來的web.config,但仍然沒有得到它的工作。

我的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/services /'文件夾中輸入你的php api應用程序?如果你刪除'web.config'並直接瀏覽php api應用程序,它的工作效果很好嗎? –

回答

0

根據你的web.config的內容,所有的請求都將被重寫了根目錄下的php/services/api.php腳本。所以你可以確定路徑中存在腳本。

此外,根據您收到的錯誤消息,通常當我們收到此消息時,這意味着服務器上的代碼存在錯誤。

根據我的經驗,也許你錯過了PHP腳本中所需的任何依賴關係。您可以登錄您的網絡應用程序的KUDU控制檯網站來檢查應用程序的完整性。 Kudu控制檯網站的URL應該是https://<your_site_name>.scm.azurewebsites.net

任何更新,請隨時讓我知道。