我已在Microsoft窗口服务器6.2 IIS服务8.5上安装cakephp 2.6版本 因为我已经在应用程序文件夹下的子目录中安装了wordpress博客
|_ cakePHP
| |_ app
| |_ blog
| |_ lib
| |_plugins
cakephp应用程序中的每件事都可以正常运行,WordPress博客也可以正常运行 如果我们打baseurl / blog / 索引页正确显示。
但是,当我们更改wordpress博客的parmalink设置中的设置,并像 https://www.baseurl.com/blog/hello-world/ 它给出了404错误,但是它可以像普通网址一样工作 https://www.baseurl.com/blog/?p=1
但是我需要像这样的漂亮的parmalink URL https://www.baseurl.com/blog/hello-world/
我为此搜索了很多文章,但也找到了很多,但是没有答案正在使用带有Cakephp的窗口服务器 众所周知,.htacces在iis 8上不起作用,所以我在cakephp的根文件夹中创建了web.config文件
|_ cakePHP
| |_ app
| |_ blog
| |_ lib
| |_plugins
| |_web.config
根文件夹/web.config上方的代码是
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<system.webServer>
<rewrite>
<rules>
<!--# Exclude requests already going to /subfolder to avoid an infinite loop-->
<rule name="Imported Rule 1" stopProcessing="true">
<match url="^blog.*$" />
<action type="None" />
</rule>
<rule name="HTTP to HTTPS redirect" stopProcessing="true">
<match url="(.*)" />
<conditions>
<add input="{HTTPS}" pattern="^OFF$" />
</conditions>
<action type="Redirect" url="https://{HTTP_HOST}/{R:1}" redirectType="SeeOther" />
</rule>
<rule name="Exclude direct access to app/webroot/*" stopProcessing="true">
<match url="^app/webroot/c$" ignoreCase="false" />
<action type="None" />
</rule>
<rule name="Rewrite routed access to assets(geet_jewellery,img, css, files, js, favicon)" stopProcessing="true">
<match url="^(blog|buyanddelight|crm_geet|geet_jewellery1|geet_jewellery|img|css|files|js|favicon.ico)(.*)$" />
<action type="Rewrite" url="app/webroot/{R:1}{R:2}" appendQueryString="false" />
</rule>
<rule name="Rewrite requested file/folder to index.php" stopProcessing="true">
<match url="^(.*)$" ignoreCase="false" />
<action type="Rewrite" url="index.php" appendQueryString="true" />
</rule>
</rules>
</rewrite>
<httpErrors errorMode="Custom" defaultPath="C:\Inetpub\wwwroot\Indexhome_.htm">
<error statusCode="403" subStatusCode="4" path="C:\Inetpub\wwwroot\Indexhome_.htm" responseMode="File" />
</httpErrors>
</system.webServer>
</configuration>
和放置在博客目录根文件夹中的web.config,其中所有wordpress文件都位于
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<system.webServer>
<rewrite>
<rules>
<rule name="WordPress: https://www.buyanddelight.com/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>
我找到了很多答案,但都不完整,因为其中有些没有cakephp,有些没有wordpress,有些没有IIS服务器休息,所以请帮忙。希望得到完整的答案谢谢
您还可以参考下面的链接以澄清我的问题,因为它可以通过.htaccess来解决,但我无法找到iis服务器web.config的答案
答案 0 :(得分:0)
很好的问题,欢迎您!在这种情况下,我会将Wordpress从CakePHP库中移开。您的CakePHP环境将变得极为脆弱。当将Wordpress保留为子文件夹时,Wordpress也会存在一些安全漏洞,这些漏洞也会影响CakePHP环境。文件包含,SQL注入,跨站点脚本和恶意软件通常与肮脏的插件和主题一起出现。
答案 1 :(得分:0)
最后,我找到了对我有用的答案,这是在iis服务器上对我有用的代码。在Blog文件夹下也创建一个web.config文件,并将以下代码放入
double