iis窗口服务器上的cakephp子文件夹中安装的wordpress

时间:2019-03-19 12:20:02

标签: wordpress cakephp iis-8 cakephp-2.6 window-server

我已在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的答案

enter link description here enter link description here

2 个答案:

答案 0 :(得分:0)

很好的问题,欢迎您!在这种情况下,我会将Wordpress从CakePHP库中移开。您的CakePHP环境将变得极为脆弱。当将Wordpress保留为子文件夹时,Wordpress也会存在一些安全漏洞,这些漏洞也会影响CakePHP环境。文件包含,SQL注入,跨站点脚本和恶意软件通常与肮脏的插件和主题一起出现。

答案 1 :(得分:0)

最后,我找到了对我有用的答案,这是在iis服务器上对我有用的代码。在Blog文件夹下也创建一个web.config文件,并将以下代码放入

double