我正在尝试在 IIS 服务器上部署我的 CODEIGNITER 应用程序。我的测试脚本 hello word 在 IIS 上运行,但是当我移动我的 CI 应用程序并检查错误日志时,任何 url 都显示 404。我尝试添加 web.config 文件以重写 root 上的规则,这里仍然发生错误是 web.config 文件
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<system.webServer>
<rewrite>
<rules>
<rule name="Index">
<match url="^(.*)$" />
<conditions>
<add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" />
<add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" />
</conditions>
<action type="Rewrite" url="index.php/{R:1}" />
</rule>
</rules>
</rewrite>
</system.webServer>
</configuration>
最佳答案
试试这个 web.config
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<system.webServer>
<rewrite>
<rules>
<rule name="Rewrite to index.php">
<match url="index.php|robots.txt|images|test.php" />
<action type="None" />
</rule>
<rule name="Rewrite CI Index">
<match url="^(.*)$" />
<conditions>
<add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" />
<add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" />
</conditions>
<action type="Rewrite" url="index.php/{R:1}" appendQueryString="false" /> </rule>
</rules>
</rewrite>
</system.webServer>
</configuration>
在 config.php 文件中,将 $config['uri_protocol']= 'QUERY_STRING'
更改为 $config['uri_protocol'] = 'AUTO'
。
关于php - 在 IIS 上部署 PHP 应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36855124/