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