【发布时间】:2017-05-18 16:48:28
【问题描述】:
我在 IIS 服务器上的 /admin 目录中放置了一个 web.config 文件时遇到问题。请注意,我对这种文件并不熟悉,我通常在 Apashe 服务器上使用 .htaccess。
上传后,文件被标记为500 - 内部服务器错误。当我将 web.config 文件从目录 /admin 中取出时,它们可以很好地处理未重写的 url。
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<system.webServer>
<rewrite>
<rules>
<rule name="rule 1H" stopProcessing="true">
<match url="^modifier-(.*)$" />
<action type="Rewrite" url="//index.php?page=modif-ville&id=$1" />
</rule>
<rule name="rule 2H" stopProcessing="true">
<match url="^modif-(.*)$" />
<action type="Rewrite" url="//index.php?page=modif-ville&id=$1&action=modif" />
</rule>
<rule name="rule 3H" stopProcessing="true">
<match url="^inscriptions$" />
<action type="Rewrite" url="//index.php?page=liste-inscrits" />
</rule>
<rule name="rule 4H" stopProcessing="true">
<match url="^inscriptions-del-(.*)$" />
<action type="Rewrite" url="//index.php?page=liste-inscrits&del=$1" />
</rule>
<rule name="rule 5H" stopProcessing="true">
<match url="^inscriptions-modif-(.*)$" />
<action type="Rewrite" url="//index.php?page=liste-inscrits&modif=$1" />
</rule>
<rule name="rule 6H" stopProcessing="true">
<match url="^inscriptions-valid-(.*)-set-(.*)$" />
<action type="Rewrite" url="//index.php?page=liste-inscrits&valid=$1&set=$2" />
</rule>
<rule name="rule 7H" stopProcessing="true">
<match url="^inscriptions-tri-(.*)$" />
<action type="Rewrite" url="//index.php?page=liste-inscrits&tri=$1" />
</rule>
</rules>
</rewrite>
</system.webServer>
</configuration>
你能看出那个文件有什么问题吗?
编辑: 经过几次测试,问题似乎出在这种带有未知变量的规则上:(.*)
当我只保留这条规则时,没有问题:
<rule name="rule 3H" stopProcessing="true">
<match url="^inscriptions$" />
<action type="Rewrite" url="//admin/index.php?page=liste-inscrits" />
</rule>
未知变量有特殊格式吗?
【问题讨论】:
-
日志是怎么说的?
-
日志中没有任何内容。我只是在页面上收到此错误:500 - 内部服务器错误。您要查找的资源有问题,无法显示。它在 web.xml 时不显示。 config 不在文件夹中。
-
我发现了一些有趣的东西(见编辑后的帖子)
标签: php iis web-config