[英]web.config not working in IIS8.0
我正在將一些PHP應用程序遷移到Microsoft Azure WebApp。
我知道在stackoverflow上有很多類似的問題,但是我不能自己解決。
以前我在一個子目錄中擁有此.htaccess文件:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-s
RewriteRule ^(.*)$ api.php?rquest=$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>
<system.webServer>
<rewrite>
<rules>
<rule name="rule 1J" stopProcessing="true">
<match url="(.*)" ignoreCase="true" />
<action type="Rewrite" url="/api.php?rquest={R:1}" appendQueryString="true" />
</rule>
<rule name="rule 2J" stopProcessing="true">
<match url="(.*)" ignoreCase="true" />
<action type="Rewrite" url="/api.php" appendQueryString="true" />
</rule>
</rules>
</rewrite>
</system.webServer>
現在,當我嘗試訪問頁面時,我沒有收到404錯誤。 似乎web.config根本不起作用。
請問有人可以告訴我我的文件怎么了嗎?
正則表達式存在一些錯誤。
這是我的測試項目目錄:
這是我的測試web.config
:
<?xml version="1.0"?>
<configuration>
<system.webServer>
<rewrite>
<rules>
<rule name="rule 1J" stopProcessing="true">
<match url="^(.*)$" ignoreCase="true" />
<action type="Rewrite" url="/api.php?request={R:1}" appendQueryString="true" />
</rule>
<rule name="rule 2J" stopProcessing="true">
<match url="^(.*)$" ignoreCase="true" />
<action type="Rewrite" url="/api.php" appendQueryString="true" />
</rule>
</rules>
</rewrite>
</system.webServer>
</configuration>
結果是,訪問<web_app_name>.azurewebsites.net
,它與第二條規則匹配,並重寫為<web_app_name>.azurewebsites.net/api.php
。
當訪問<web_app_name>.azurewebsites.net/example
,它匹配第一條規則並重寫為<web_app_name>.azurewebsites.net/app.php?request=example
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.