.htaccess与wordpress和drupal网站

时间:2012-02-10 11:07:54

标签: wordpress .htaccess drupal

在我的root wordpress网站上运行

我有通常的wp-content,wp-includes,wp-admin文件夹,但我也有我的'drupal'这是一个drupal网站

我在root和drupal目录中都有.htaccess文件

当我尝试访问drupal网站的任何节点时,会发现wordpress的页面未找到错误

请帮帮我

2 个答案:

答案 0 :(得分:3)

RewriteRule ^drupal - [L]添加到位于根目录中的.htaccess中的WP规则之上。

答案 1 :(得分:0)

我在Cpanel和Fantastico看到了很多。

https://www.drupal.org/forum/support/post-installation/2010-08-09/installing-wordpress-in-a-sub-directory-of-drupal

主题已陈旧但仍然相关。只是想分享我对这个问题的解决方案。

  1. 在WP中,转到管理员>设置>固定链接;

    向下滚动到     底部;你应该看到这个:

  2. 如果您的.htaccess文件是可写的,我们可以自动执行此操作,但事实并非如此,这些是您在.htaccess文件中应具有的mod_rewrite规则。单击该字段并按 Ctrl + a 以选择全部。 将其添加到WordPress

    <IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteBase /YOURSUBDIR/
    RewriteRule ^index\.php$ - [L]
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule . /YOURSUBDIR/index.php [L]
    </IfModule>
    

    在Drupal根目录中打开你的.htaccess,找到这个位:

    # Pass all requests not referring directly to files in the filesystem to
      # index.php. Clean URLs are handled in drupal_environment_initialize().
      RewriteCond %{REQUEST_FILENAME} !-f
      RewriteCond %{REQUEST_FILENAME} !-d
      RewriteCond %{REQUEST_URI} !=/favicon.ico
      RewriteRule ^ index.php [L]
    

    将WP Admin代码粘贴到此下面,从“RewriteBase”到结尾; 它现在应该工作! 确保你的WordPress固定链接通过点击保存重置(这里的第一个URL引导你完成它 - https://www.cloudways.com/blog/fix-404-error-on-wordpress/

    如果这不起作用,试试这个。

    见:

    将此添加到WordPress

    # BEGIN WordPress
    <IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteBase /
    RewriteRule ^index\.php$ - [L]
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule . /index.php [L]
    </IfModule>
    # END WordPress
    

    忽略DocumentRoot中存在的子文件夹 启用干净URL时,在Drupal根安装的子文件夹(子目录)中运行其他软件应用程序时。您的.htaccess文件可能会将这些URL重写为Drupal。对于那些使用Cpanel和Fantastico在其域的根目录中安装Drupal的人来说,这可能是一个特殊的问题,其中Fantastico将其他软件安装到子文件夹中。例如,由Fantastico安装的phpSurveyor管理界面将无法使用Drupal的默认.htaccess设置。管理界面的网址无法访问,并会在您的Drupal网站中返回“页面未找到”页面。

    诀窍是修改.htaccess以忽略特定的文件/文件夹。例如,如果您有两个文件夹,并且在Drupal安装的根目录中,请在Drupal重写之前在“RewriteEngine on”指令之后直接插入以下代码来修改.htaccess文件:

    =========[ start of .htaccess snippet]==========
    <IfModule mod_rewrite.c>
      RewriteEngine on
      #
      # stuff to let through (ignore)
      RewriteCond %{REQUEST_URI} "/folder1/" [OR]
      RewriteCond %{REQUEST_URI} "/folder2/"
      RewriteRule (.*) $1 [L]
      #
    ====================[ end ]=====================
    

    对于每个文件夹,您要绕过,添加RewriteCond行,并使用[OR]结束除最终RewriteCond之外的所有文件夹。请注意,重写规则中的[L]告诉它停在那里并绕过其余的重写规则。

    忽略通过Apache Alias指令包含的子文件夹 从4.7开始,应该在drupal的.htaccess设置中自动允许文件和目录。那是什么!-f和!-d行。

    但是,如果你正在使用Apache Alias或类似的指令,那么该文件实际上并不存在,因此drupal将会接管它。最好的方法是添加一个与您的位置匹配的条件,并使其跳过它。多数民众赞成在!手段。请参阅以下内容:

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

    它实质上意味着如果REQUEST_URI不以/ yourDirectoryName开头并且REQUEST_FILENAME不是真实文件或真实文件夹,则应用此规则。这正是你想要的。该规则的界限之间存在隐含的“与”。的!说“不喜欢这个”。