【问题标题】:Url rewrite Azure PHP?Url 重写 Azure PHP?
【发布时间】:2016-10-28 02:03:58
【问题描述】:

我在 Azure 上创建了一些 PHP 应用程序,但这是我第一次将 IIS 用于我的 PHP 应用程序。我知道如何在 Apache 上使用 .htaccess 进行 url 重写,没有问题。但是如何在 Azure IIS 上实现这一点。这是我用于 Apache 的 .htaccess。

.htaccess

# The Friendly URLs part
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?q=$1 [L,QSA] 

【问题讨论】:

    标签: .htaccess azure url-rewriting


    【解决方案1】:

    您需要使用您的 Web.config 文件并在其中使用 <system.webServer><rewrite> 规则。

    您需要在您的web.config 中使用以下代码从您的.htaccess 复制上面的代码:

    <?xml version="1.0" encoding="utf-8" ?>
    <configuration>
        <system.webServer>
            <rewrite>
                <rules>
                    <rule name="Main Rule" stopProcessing="true">
                        <match url=".*" />
                        <conditions logicalGrouping="MatchAll">
                            <add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" />
                            <add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" />
                        </conditions>
                        <action type="Rewrite" url="index.php" />
                    </rule>
                </rules>
            </rewrite>
        </system.webServer>
    </configuration>
    

    【讨论】:

      【解决方案2】:

      正确的web.config

      <?xml version="1.0" encoding="UTF-8"?>
      <configuration>
          <system.webServer>
              <directoryBrowse enabled="false" />
              <defaultDocument>
                  <files>
                      <clear />
                      <add value="index.php" />
                      <add value="Default.htm" />
                      <add value="Default.asp" />
                      <add value="index.htm" />
                      <add value="Default.aspx" />
                  </files>     
              </defaultDocument>
              <rewrite>
                  <rules>
                      <rule name="ModX IIS7 Rule 1 (By Simon Fraser)" stopProcessing="true">
                          <match url=".*" ignoreCase="false" />
                          <conditions logicalGrouping="MatchAll">
                              <add input="{HTTP_USER_AGENT}" pattern="^.*internal\ dummy\ connection.*$" />
                          </conditions>
                          <action type="CustomResponse" statusCode="403" statusReason="Forbidden" statusDescription="Forbidden" />
                      </rule>
                      <rule name="ModX IIS7 Rule 2 (By Simon Fraser)" stopProcessing="true">
                          <match url="^(manager|assets)" ignoreCase="false" />
                          <action type="None" />
                      </rule>
                      <rule name="ModX IIS7 Rule 3 (By Simon Fraser)" stopProcessing="true">
                          <match url="^(.*)$" ignoreCase="false" />
                          <conditions logicalGrouping="MatchAll">
                              <add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" pattern="" ignoreCase="false" />
                              <add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" pattern="" ignoreCase="false" />
                          </conditions>
                          <action type="Rewrite" url="index.php?q={R:1}" appendQueryString="true" />
                      </rule>
                  </rules>
              </rewrite>
          </system.webServer>
      </configuration>
      

      【讨论】:

        猜你喜欢
        • 2017-09-22
        • 1970-01-01
        • 2021-07-29
        • 2011-03-17
        • 2012-01-16
        • 2018-12-03
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多