在ASP.NET MVC网站上设置Wordpress永久链接
本文关键字:Wordpress 链接 设置 ASP NET MVC 网站 | 更新日期: 2023-09-27 18:20:43
我有一个NopCommerce网站(ASP.NET MVC
),我正在尝试添加一个Wordpress博客作为主网站的子文件夹。
Wordpress的安装很好,所有配置文件都已创建,如果你浏览它,博客也能正常工作。
然而,我现在想通过使用帖子的名称来设置漂亮的永久链接。
通常,当您设置永久链接时,它会为Apache生成.htaccess
文件,或为Windows IIS7 Url重写生成web.config
文件。
当我尝试保存永久链接设置时,它会停在那里尝试加载,最终超时。
我猜想,因为ASP.NET MVC使用Routes
,Wordpress站点不知道该设置什么。
有人能为我提供如何设置永久链接的指导吗?我是否需要在我的MVC站点上设置一个Route
?
最后,我从标准C#网站上的一个现有博客中复制了一个web.config文件。
通常Wordpress会自己生成web.config文件。我只能假设Wordpress还没有被设置来处理.NET MVC网站上的安装。
在Wordpress博客文件的根目录中创建一个web.config文件,其中包含以下代码,应该可以使其正常工作:
<?xml version="1.0" encoding="UTF-8">
<configuration>
<system.webServer>
<defaultDocument>
<files>
<clear/>
<add value="index.php"/>
</files>
</defaultDocument>
<rewrite>
<rule name="wordpress" 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>
</rewrite>
</system.webServer>
</configuration>
如果你在IIS上安装WordPress,你会发现你的友好URL不起作用。这是因为WordPress想要使用一个名为“;mod_rewrite”;这样做的快速总结是,它将使用友好的浏览器URL,并在后端将其更改为index.php。这种方法的一个问题是IIS不加载apache mods
右键单击IIS网站可以找到此设置->属性->ISAPI筛选器选项卡->添加…;随意命名过滤器,可执行文件的路径应为:
C: ''Program Files''Helicon''ISAPI_Rewrite3''ISAPI_Rewrite.dll
在两个窗口上单击"确定"以保存您的设置
在这里,我们将编辑httpd.conf(注意:这是付费版本和Lite版本之间的区别。在付费版本中,您需要编辑web文件夹根目录上的.htaccess文件)
重写基/
重写结束%{REQUEST_FILENAME}-f
重写结束%{REQUEST_FILENAME}-d
重写规则^(.*)$index.php?p=$1[NC,L]