AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / server / 问题 / 13176
In Process
elcuco
elcuco
Asked: 2009-05-28 09:56:11 +0800 CST2009-05-28 09:56:11 +0800 CST 2009-05-28 09:56:11 +0800 CST

IIS 上的 Drupal 清理 URL

  • 772

当服务器是 IIS 时,任何想法如何在 drupal 上启用 Clean URLs?

iis drupal
  • 6 6 个回答
  • 2700 Views

6 个回答

  • Voted
  1. WerkkreW
    2009-05-28T10:06:30+08:002009-05-28T10:06:30+08:00

    一个快速的谷歌搜索返回了这个指南,Drupal Clean URL's on IIS。这有帮助吗?

    • 3
  2. mparker17
    2009-11-28T13:43:19+08:002009-11-28T13:43:19+08:00

    经过一番痛苦之后,我和我伟大的托管管理员设法让 Ionic ISAPI 重写过滤器 (IIRF) 2.0.1.1013 RELEASE 在 IIS v6.0 上运行。我想我会发布我们如何让它工作的;希望我们的解决方案对您有所帮助!

    在我开始之前,我的站点在不同类型的服务器上工作,所以我在现有的 Drupal 配置上遇到了一些问题。因此,如果您已经在其他地方设置了站点,请确保在移动到新服务器之前执行以下操作:

    1. 在 Drupal 的管理员 -> 站点配置 -> 清理 URL 中禁用清理 URL
    2. 如果您Global Redirect打开了该模块,请确保在管理员 -> 站点配置 -> 全局重定向中将“非清洁到清洁”选项设置为“关闭”

    以下是我们为使其正常工作而采取的步骤:

    1. 下载 Ionic ISAPI Rewriting Filter 2.0.1.1013 RELEASE并解压文件
    2. 按照指南中的说明进行操作。该指南包含在 AdminGuide > 帮助 > IirfGuide.chm 的 ZIP 文件中。我们使用了本文末尾引用的 IirfGlobal.ini 文件。
    3. 重新启动 IIS
    4. 在站点的根文件夹中创建了一个 Iirf.ini 文件,仅输入StatusUrl /iirsStatus RemoteOk. 然后,我们通过转到 来测试 IIRS 是否正常工作http://mysite.example.com/iirsStatus。它应该为您打印出一些状态行。
    5. 将 Iirf.ini 文件更改为最终形式,如本文末尾所引用的
    6. 再次打开清理 URL。但是不要打开Global Redirect“非清洁到清洁”选项!它将无休止地重定向页面。

    IirfGlobal.ini:

    RewriteEngine ON
    RewriteFilterPriority DEFAULT
    NotifyLog OFF
    

    Iirf.ini:

    # Do not pass to drupal if the file or directory exists
    RewriteCond %{REQUEST_FILENAME} -f [OR]
    RewriteCond %{REQUEST_FILENAME} -d
    RewriteRule ^ - [L]
    
    # Handle query strings on the end
    RewriteRule /(.*)\?(.*)$ /index.php\?q=$1&$2 [I,L]
    
    # now pass through to the generic handler
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule ^/(.*)$ /index.php?q=$1 [I,L]
    
    • 2
  3. Tim
    2009-06-05T08:07:30+08:002009-06-05T08:07:30+08:00

    Drupal 的网站上有一些关于在我目前使用的 II6 中使用干净 URL 的文档。查看http://drupal.org/node/3854。

    简短的回答是从下载 ISAPI Rewrite 2 litehttp://www.isapirewrite.com/。精简版只允许您为整个 IIS 配置配置一组重写规则,但效果很好并且是免费的。

    付费版本允许您为您在 IIS 中配置的每个站点指定重写规则,但需要更多的 IIS 配置。

    我使用的 ISAPI 规则是:

    # Helicon ISAPI_Rewrite 配置文件
    # 版本 3.1.0.62
    
    重写引擎开启
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_URI} !=/favicon.ico
    重写规则 ^(.*)$ /index.php?q=$1 [L,QSA]
    

    如果您的 Drupal 安装安装在子目录下,您可能需要稍微调整一下这些规则。

    • 1
  4. Nick Franceschina
    2009-07-25T11:40:36+08:002009-07-25T11:40:36+08:00

    我已经使用 Ionic Rewrite 有一段时间了……它是免费的,而且效果很好

    http://www.codeplex.com/IIRF

    • 1
  5. Richard Hare
    2013-01-24T08:43:32+08:002013-01-24T08:43:32+08:00

    我设法通过安装 URL 重写器模块并使用以下代码在基本目录中创建 web.config 文件来实现这一点:

    <?xml version="1.0" encoding="UTF-8"?>
    <configuration>
      <rewrite>
        <rules>
          <rule name="Drupal clean URLs" enabled="true">
            <match url="^(.*)$" ignoreCase="false" />
            <conditions logicalGrouping="MatchAll">
              <add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" />
              <add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" />    
              <add input="{REQUEST_URI}" negate="true" pattern="/favicon.ico$" />
            </conditions>
            <action type="Rewrite" url="index.php?q={R:1}" appendQueryString="true" />
          </rule>
        </rules>
      </rewrite>
    </configuration>
    

    这篇文章中有更多信息,继续说:“当通过 FastCGI 模块使用 PHP 时,您还需要安装一个修补程序来纠正 REQUEST_URI 行为。有关更多信息,请参阅KB954946。此问题的一个症状是所有表单提交都被重定向到该网站的首页。”

    • 1
  6. Cheeso
    2009-07-15T19:11:23+08:002009-07-15T19:11:23+08:00

    IIRF是一个免费的 URL 重写器,适用于 IIS 并与 drupal 一起使用。

    • 0

相关问题

  • IIS 6.0 (Windows Server 2003) 上的 HTTP 压缩

  • 这个 Web 服务器可以处理多少个站点?[复制]

  • 如何在 IIS 中发送响应标头?

  • IIS 优化

  • IIS 6.0 (Windows Server 2003) 备份的最佳实践?

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    从 IP 地址解析主机名

    • 8 个回答
  • Marko Smith

    如何按大小对 du -h 输出进行排序

    • 30 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    Windows 中执行反向 DNS 查找的命令行实用程序是什么?

    • 14 个回答
  • Marko Smith

    如何检查 Windows 机器上的端口是否被阻塞?

    • 4 个回答
  • Marko Smith

    我应该打开哪个端口以允许远程桌面?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    MikeN 在 Nginx 中,如何在维护子域的同时将所有 http 请求重写为 https? 2009-09-22 06:04:43 +0800 CST
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    0x89 bash中的双方括号和单方括号有什么区别? 2009-08-10 13:11:51 +0800 CST
  • Martin Hope
    kch 如何更改我的私钥密码? 2009-08-06 21:37:57 +0800 CST
  • Martin Hope
    Kyle Brandt IPv4 子网如何工作? 2009-08-05 06:05:31 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve