10

我刚刚使用 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 网站以正确管理永久链接?

在此先感谢您的帮助!

4

2 回答 2

17

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>

有关分步教程,请参阅Azure 上的 Pretty WordPress Permalinks。有关更多信息,请参阅将 WordPress 博客移至 Windows Azure – 第 4 部分:漂亮的永久链接和 URL 重写规则

于 2013-07-26T19:48:22.017 回答
1

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

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

于 2013-07-26T04:41:23.597 回答