如何在Azure上的IIS服务器上的WordPress上为FIX选择固定链接结构

时间:2019-02-08 15:49:08

标签: wordpress azure iis

需要您的帮助。 Azure中有一台IIS服务器。 它包含网站和Angular SPA应用程序。 我需要在单独的目录WordPress博客中安装。 博客展开。 但是选择永久链接结构存在问题。

我有一个错误: 403-禁止访问:拒绝访问。 随附的凭据。

我有两个web.config文件 1.根web.config

    <?xml version="1.0" encoding="utf-8"?>
    <configuration>
        <location path=".">
            <system.webServer>
                <security>
                    <authentication>
                        <anonymousAuthentication enabled="true" />
                    </authentication>
                </security>
                <rewrite>
                    <rules>
                        <clear />
                        <rule name="Redirect http to https" stopProcessing="true">
                            <match url=".*" />
                            <conditions logicalGrouping="MatchAll" trackAllCaptures="false">
                                <add input="{HTTPS}" pattern="^OFF$" />
                            </conditions>
                            <action type="Redirect" url="https://{HTTP_HOST}/{R:0}" />
                        </rule>
                        <rule name="login redirect" patternSyntax="ECMAScript" stopProcessing="true">
                            <match url="^login" />
                            <conditions logicalGrouping="MatchAll" trackAllCaptures="false" />
                            <action type="Redirect" url="ANGULAR-SPA-DIR/login" />
                        </rule>
                        <rule name="AngularJS Routes" stopProcessing="true">
                            <match url=".*" />
                            <conditions logicalGrouping="MatchAll" trackAllCaptures="false">
                                <add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" />
                                <add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" />
                                <add input="{REQUEST_URI}" matchType="Pattern" pattern="/ROOT-DIR/" ignoreCase="true" negate="true" />
                                <add input="{REQUEST_URI}" matchType="Pattern" pattern="/ANGULAR-SPA-DIR/" ignoreCase="true" negate="true" />
                                <add input="{REQUEST_URI}" matchType="Pattern" pattern="/TEST/" ignoreCase="true" negate="true" />
                            </conditions>
                            <action type="Rewrite" url="/index.html" />
                        </rule>
                        <rule name="AngularJS Routes1" stopProcessing="true">
                            <match url="^ANGULAR-SPA-DIR/" />
                            <conditions logicalGrouping="MatchAll" trackAllCaptures="false">
                                <add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" />
                                <add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" />
                            </conditions>
                            <action type="Rewrite" url="/ANGULAR-SPA-DIR/index.html" />
                        </rule>
                        <rule name="AngularJS Routes2" stopProcessing="true">
                            <match url="^TEST/" />
                            <conditions logicalGrouping="MatchAll" trackAllCaptures="false">
                                <add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" />
                                <add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" />
                            </conditions>
                            <action type="Rewrite" url="/TEST/index.html" />
                        </rule>
                        <rule name="WordPress Blog" stopProcessing="true">
                            <match url="blog/.*" />
                            <conditions logicalGrouping="MatchAll" trackAllCaptures="true">
                                <add input="{REQUEST_FILENAME}" matchType="IsFile" />
                                <add input="{REQUEST_FILENAME}" matchType="IsDirectory" />
                            </conditions>
                            <action type="None" logRewrittenUrl="true" />
                        </rule>
                    </rules>
                </rewrite>
                <caching>
                    <profiles>
                        <add extension=".css" policy="CacheForTimePeriod" kernelCachePolicy="DontCache" duration="00:30:00" />
                        <add extension=".svg" policy="CacheForTimePeriod" kernelCachePolicy="DontCache" duration="01:00:00" />
                        <add extension=".jpg" policy="CacheForTimePeriod" kernelCachePolicy="DontCache" duration="01:00:00" />
                        <add extension=".js" policy="CacheForTimePeriod" kernelCachePolicy="DontCache" duration="00:30:00" />
                        <add extension=".woff2" policy="CacheForTimePeriod" kernelCachePolicy="DontCache" duration="24.00:00:00" />
                    </profiles>
                </caching>
                <directoryBrowse enabled="true" />
            </system.webServer>
        </location>
    </configuration>
  1. 博客web.config
    <?xml version="1.0" encoding="UTF-8"?>
    <configuration>
      <system.webServer>
        <rewrite>
          <rules><remove name="WordPress Blog"/>
                <rule name="WordPress: https://ROOT-URL/blog" patternSyntax="Wildcard">
                    <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"/>
                </rule></rules>
        </rewrite>
      </system.webServer>
    </configuration>

什么可以建议经验丰富的朋友?

1 个答案:

答案 0 :(得分:0)

将根目录添加到ROOT web.config

<conditions logicalGrouping="MatchAll" trackAllCaptures="false">
...
<add input="{QUERY_STRING}" pattern="/blog/" />
</conditions>

之后,它们“选择您的永久链接结构”可以正常工作