在我的root wordpress网站上运行
我有通常的wp-content,wp-includes,wp-admin文件夹,但我也有我的'drupal'这是一个drupal网站
我在root和drupal目录中都有.htaccess文件
当我尝试访问drupal网站的任何节点时,会发现wordpress的页面未找到错误
请帮帮我
答案 0 :(得分:3)
将RewriteRule ^drupal - [L]
添加到位于根目录中的.htaccess中的WP规则之上。
答案 1 :(得分:0)
主题已陈旧但仍然相关。只是想分享我对这个问题的解决方案。
在WP中,转到管理员>设置>固定链接;
向下滚动到 底部;你应该看到这个:
如果您的.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不是真实文件或真实文件夹,则应用此规则。这正是你想要的。该规则的界限之间存在隐含的“与”。的!说“不喜欢这个”。