【问题标题】:Running a different CMS system under drupal folder在 drupal 文件夹下运行不同的 CMS 系统
【发布时间】:2010-06-27 09:43:36
【问题描述】:

我是一个drupal新手...

我完成了我的第一个 drupal 网站。然后客户想在新的drupal站点下运行他们的旧CRM,他们将CRM文件夹上传到drupal文件夹中,当我尝试解决CRM管理员时,如下所示,它重定向drupal 404页面(即搜索页面)。

www.blablabla.com/crm/admin

drupal 的错误信息如下:

您请求的页面不存在。为了您的方便,搜索 使用查询 500 执行 shtml.

有什么方法可以让 drupal 忽略其文件夹下的任何文件夹?通过.htaccess 的东西,或者我不知道:/

欣赏帮助很大!非常感谢!

【问题讨论】:

    标签: .htaccess drupal path drupal-6


    【解决方案1】:

    我建议只从 drupal 内部链接到旧 cms。并将旧 cms 的文件夹保留在 drupal 文件夹之外。您的旧 cms 也可能没有正确引用链接(它期望 http://oldcmslink 而在 drupal 内部它将是 http://drupal?q=something)。

    【讨论】:

    • 也许可以,但我不确定如何解决链接不正确的问题。
    • +1 用于将不同的系统保存在不同的文件夹中 - 如果不这样做,尝试管理由此产生的混乱毫无用处;)
    • @artmania:如果子域使用自己的文档根目录,使用子域将是一个合适的解决方案。然后你可以把旧的 CRM 放在那里,两个系统就完全分开了。 (这也可以防止任何可能发生的路径/URL 冲突。)
    【解决方案2】:

    Drupal 在.htaccess 文件中使用这些行。

    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_URI} !=/favicon.ico
    RewriteRule ^(.*)$ index.php?q=$1 [L,QSA]
    

    要使用下面的子目录,您需要在此之前添加 RewriteRule 并使用 [L] 属性,或者将您的子目录添加到此处的 RewriteCond 列表中,例如:

    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_URI} !^/crm/ # Ignore Drupal Redirects for our CRM.
    RewriteCond %{REQUEST_URI} !=/favicon.ico
    RewriteRule ^(.*)$ index.php?q=$1 [L,QSA]
    

    【讨论】:

      【解决方案3】:

      您必须在 .htaccess 文件中创建一个 mod_rewrite 规则。 Drupal 将(几乎)所有请求定向到 index.php,然后将请求发送到 Drupal 的菜单路由器。因此,除非您创建重写规则,否则您的 CMS 将永远无法正常工作。

      但如果可以的话,我会听取 controlfreak123 的建议,并将您的旧 CMS 网站移至另一个地址。您将不得不维护自己的 Drupal 的 htaccess 文件版本,并在每次升级时处理这项工作。如果您添加新模块等,稍后您可能会遇到名称冲突。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2017-12-25
        • 2012-10-12
        • 2019-03-01
        • 2016-04-05
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-06-10
        相关资源
        最近更新 更多