Windows Azure重写Zend Framework的规则

时间:2013-12-02 22:06:18

标签: zend-framework iis azure frameworks rewrite

目前我的apache上有以下htaccess:

SetEnv APPLICATION_ENV development

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} -s [OR]
RewriteCond %{REQUEST_FILENAME} -l [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^.*$ - [NC,L]
RewriteRule ^.*$ index.php [NC,L]

我的应用程序使用Zend Framework作为MVC框架,目前我的htaccess在我的公共文件夹中。

在MS Azure上,我在IIS中创建了一个网站,并在我的root中放置了一个web.config文件,其中包含以下配置:

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
    <system.webServer>
        <rewrite>
          <rules>
                <clear />
                <rule name="TransferToPublic-StaticContent" patternSyntax="Wildcard" stopProcessing="true">
                    <match url="*" />
                    <conditions logicalGrouping="MatchAny" trackAllCaptures="false">
                        <add input="{REQUEST_URI}" pattern="*images*" />
                        <add input="{REQUEST_URI}" pattern="*css*" />
                        <add input="{REQUEST_URI}" pattern="*js*" />
                        <add input="{REQUEST_URI}" pattern="*bootstrap*" />
                        <add input="{REQUEST_URI}" pattern="*upload*" />
                        <add input="{REQUEST_URI}" pattern="*theme*" />
                        <add input="{REQUEST_URI}" pattern="*img*" />
                    </conditions>
                    <action type="Rewrite" url="public/{R:0}" />
                </rule>
                <rule name="Imported Rule 1" stopProcessing="true">
                    <match url="^.*$" />
                    <conditions logicalGrouping="MatchAll" trackAllCaptures="false">
                        <add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" />
                    </conditions>
                    <action type="Rewrite" url="public/index.php" />
                </rule>
          </rules>
        </rewrite>
        <defaultDocument>
            <files>
                <clear />
                <add value="index.php" />
            </files>
        </defaultDocument>
    </system.webServer> 
</configuration>

问题是现在我无法访问具有以下路径/ public / index或/ public / test

的页面

我做错了什么?配置中是否缺少某些内容? IIS上Zend Framework的推荐配置是什么?

提前感谢您的帮助!

1 个答案:

答案 0 :(得分:0)

我知道这个问题有点陈旧,但如果你没有解决问题,那么就可以找到关于如何在IIS上配置Zend Framework的答案。

Zend Documentation for IIS

但也许您的问题也是设置文档根目录。你不应该把你的重写指向&#34; public / index.php&#34;而只是&#34; index.php&#34;然后设置正确的文档根目录。

我在Azure网站上回答了我的问题:Azure Websites 仍在等待Azure云服务的答案:Azure Cloud Services

在您自己配置IIS时,Azure VM应该是自我解释的。