【问题标题】:Importing URL Rewrite to IIS 7.5将 URL 重写导入 IIS 7.5
【发布时间】:2010-11-26 15:39:45
【问题描述】:

我正在尝试通过 IIS 运行 PimCore。但是,我对如何导入 .htaccess 文件感到困惑。我设法将除这两个之外的所有规则导入:

RewriteCond %{REQUEST_FILENAME} -s [OR]
RewriteCond %{REQUEST_FILENAME} -l [OR]

如果你们能告诉我如何将这些导入到 IIS 7 URL Rewrite 引擎中,那将非常有帮助。

提前致谢。

这是完整的 htaccess 文件:

RewriteEngine On

RewriteCond %{REQUEST_METHOD} ^GET
RewriteCond %{DOCUMENT_ROOT}/website/var/assets%{REQUEST_URI} -f
RewriteRule ^(.*)$ /website/var/assets%{REQUEST_URI} [PT,L]

RewriteRule ^website/var/tmp.* - [PT,L]
RewriteRule ^website/var/assets.* - [PT,L]
RewriteRule ^plugins/.*/static.* - [PT,L]
RewriteRule ^pimcore/static.* - [PT,L]

RewriteRule ^website/var/.*$ / [F,L]
RewriteRule ^plugins/.*$ / [F,L]
RewriteRule ^pimcore/.*$ / [F,L]

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

在日志中找到这个:

PHP Fatal error:  Interface 'Zend_Controller_Router_Route_Interface' not found in D:\pimcoreroot\pimcore\lib\Zend\Controller\Router\Route\Abstract.php on line 39

【问题讨论】:

    标签: iis iis-7 url-rewriting url-routing iis-7.5


    【解决方案1】:

    自己解决了这个问题。

    为了解决这个路由问题。 IIS 7.5 有一个三重过程。需要做的第一件事是您自然需要为 IIS 7.5 重写 URL。完成后,转到 web.config xml 文件并将其粘贴。

        <?xml version="1.0" encoding="UTF-8"?>
    <configuration>
         <system.webServer>
             <rewrite>
                 <rules>
                     <rule name="Imported Rule 1" stopProcessing="true">
                         <match url="^.*$" />
                         <conditions logicalGrouping="MatchAny">
                             <add input="{REQUEST_FILENAME}"
                                 matchType="IsFile" pattern=""
                                 ignoreCase="false" />
                             <add input="{REQUEST_FILENAME}"
                                 matchType="IsDirectory"
                                 pattern="" ignoreCase="false" />
                         </conditions>
                         <action type="None" />
                     </rule>
                     <rule name="Imported Rule 2" stopProcessing="true">
                         <match url="^.*$" />
                         <action type="Rewrite" url="index.php" />
                     </rule>
                 </rules>
             </rewrite>
         </system.webServer>
    </configuration>
    

    完成此操作后,转到 IIS 管理器并转到您要在其上使用 pimcore 的站点。转到右侧操作面板上的导入规则按钮。在导入规则文本区域(从顶部开始的第一个文本区域)中,将其粘贴到:

    RewriteEngine On
    
    RewriteCond %{REQUEST_METHOD} ^GET
    RewriteCond %{DOCUMENT_ROOT}/website/var/assets%{REQUEST_URI} -f
    RewriteRule ^(.*)$ /website/var/assets%{REQUEST_URI} [PT,L]
    
    RewriteRule ^website/var/tmp.* - [PT,L]
    RewriteRule ^website/var/assets.* - [PT,L]
    RewriteRule ^plugins/.*/static.* - [PT,L]
    RewriteRule ^pimcore/static.* - [PT,L]
    
    RewriteRule ^website/var/.*$ / [F,L]
    RewriteRule ^plugins/.*$ / [F,L]
    RewriteRule ^pimcore/.*$ / [F,L]
    
    RewriteCond %{REQUEST_FILENAME} -s [OR]
    RewriteCond %{REQUEST_FILENAME} -l [OR]
    RewriteCond %{REQUEST_FILENAME} -f
    RewriteRule ^.*$ - [NC,L]
    RewriteRule ^.*$ index.php [NC,L]
    

    完成后,单击应用,这将允许 pimcore 的路由在您的 IIS 站点上工作:)

    【讨论】:

      猜你喜欢
      • 2013-01-06
      • 2012-05-23
      • 2015-05-11
      • 2011-10-21
      • 2013-07-26
      • 2013-06-01
      • 2011-09-02
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多