我刚刚使用Windows Azure及其WordPress博客模板创建了一个网站。我能够更新CNAME和Alias记录,以便将我的域名正确转发到他们的网站。当我访问: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),则会找到该页面并且一切正常。
我已经对此进行了相当多的研究,并发现有一个url重写为apache,但这显然对我不起作用。我还发现IIS有一个url重写,我在本地玩过。您可以对此进行配置以正确管理URL重写。但是,Windows Azure网站配置门户中没有此类IIS面板。
我还阅读了很多关于编辑web.config和htaccess的内容,但这些文件都不在我的wwwroro目录(或任何子目录)中。
那么,有没有人知道如何配置azure网站来正确管理永久链接?
提前感谢您的帮助!
答案 0 :(得分:15)
Windows Azure网站上的WordPress在Microsoft Internet信息服务(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。
答案 1 :(得分:1)
如果您的wordpress博客配置为www.myblog.net,那么在您的永久链接中,您不能拥有/博客,除非您在wordpress设置中更改了该博客。 我认为您的永久链接应该看起来像http://www.myblog.net/index.php/The-Post-Name-Is-Here
转到设置 - &gt;永久链接,并从那里选择其中一个选项。或者,如果您想要自定义网址,请输入 - /index.php/%postname%/并保存。