【问题标题】:How Do You Configure Windows Azure For Url Rewrite Using WordPress?如何使用 WordPress 配置 Windows Azure 以进行 URL 重写?
【发布时间】:2013-07-26 03:42:45
【问题描述】:

我刚刚使用 Windows Azure 和他们的 WordPress 博客模板创建了一个网站。我能够更新 CNAME 和别名记录,以正确地将我的域转发到他们的网站。当我转到:www.myblog.net 时,我被重定向到:myblog.azurewebsites.net 并且浏览器显示 www.myblog.net,这就是我想要的。

这一切都很好。该网站加载良好,一切都很好。

但是,当我尝试访问带有永久链接的页面时,问题就出现了。通过 WordPress 配置,我将永久链接更新为以下格式:http://www.myblog.net/blog/The-Post-Name-Is-Here。问题在于,当我尝试访问该 URL 时,出现以下错误:

您要查找的资源已被删除、名称已更改或暂时不可用。

如果我转到同一主题的短链接(例如http://www.myblog.net/?p=241),则会找到该页面并且一切正常。

我对此进行了很多研究,发现有一个针对 apache 的 url 重写,但这显然对我不起作用。我还发现 IIS 有一个 url 重写,我在本地玩过这个。您可以对其进行配置以正确管理 url 重写。但是,Windows Azure 网站配置门户中没有这样的 IIS 面板。

我还阅读了很多关于编辑 web.config 和 htaccess 的内容,但是这些文件都不在我在 azure 上的网站的 wwwroot 目录(或任何子目录)中。

那么,有谁知道如何配置 azure 网站以正确管理永久链接?

提前感谢您的帮助!

【问题讨论】:

    标签: wordpress azure url-rewriting


    【解决方案1】:

    Windows Azure 网站上的 WordPress 在 Microsoft Internet Information Services (IIS) 下运行,而不是在 Apache 下运行。 IIS 也支持 URL 重写,但配置是在 Web.config 文件中完成的,而不是在 .htaccess 文件中。

    首先,在WordPress设置中,将永久链接更改为不带“index.php”的自定义结构,如:

    /%year%/%monthnum%/%day%/%postname%/
    

    还要确保在 WordPress 设置的常规设置部分中,WordPress 地址 (URL) 和站点地址 (URL) 正确。

    接下来,使用 FTP、WebMatrix 或其他工具,在您的 WordPress 站点的根目录中创建一个 Web.config 文件:

    <?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>
    

    有关分步教程,请参阅Pretty WordPress Permalinks on Azure。如需更多信息,请参阅Moving a WordPress Blog to Windows Azure – Part 4: Pretty Permalinks and URL Rewrite rules

    【讨论】:

    • 使用 web.config 是要走的路。这是我正在寻找的确切答案!我之前曾尝试上传 web.config,但我没有正确设置我的 WordPress 地址 (URL) 和站点地址 (URL)。当我需要两个字段都指向 mysite.net 时,我仍然指向我的实际服务器 URL。感谢您的帮助!
    • 这个答案很棒。如果有人找不到编辑 web.config 的方法。您可以使用以下your-site.azurewebsites.net/dev/wwwroot/web.config 编辑 web.config
    【解决方案2】:

    如果您的 wordpress 博客配置为 www.myblog.net,那么在您的永久链接中您不能拥有 /blog,除非您在 wordpress 设置中更改了它。 我认为你的永久链接应该看起来像 http://www.myblog.net/index.php/The-Post-Name-Is-Here

    转到设置 -> 永久链接,然后从那里选择一个选项。或者,如果您想要自定义 url,然后输入 - /index.php/%postname%/ 并保存。

    【讨论】:

    • 我按照您的建议将 /blog/ 替换为 /index.php/,并且我所有的旧帖子和新帖子都开始完美运行,因此非常感谢您的回答!不过,有一个问题 - 你(或任何人)知道如何美化永久链接,使其可以只是 www.myblog.net/blog/this-is-a-title 吗?我已经阅读了有关 WordPress 的不同插件来帮助解决这个问题,但它们都适用于 Apache。
    • 查看 Fernando 为 Pretty Permalinks 分享的链接
    猜你喜欢
    • 2011-09-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-09-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多