Wordpress .htaccess 破坏子目录

Wordpress .htaccess 破坏子目录

我们最近决定使用 WordPress 作为我们的首页而不是论坛,所以我们移动了一些东西并在网站的根目录中安装了 WordPress,但不幸的是,论坛(/forum)(也依赖于它自己的规则)现在因为(在网站的根目录中).htaccess而损坏.htaccess

网站结构如下:

  • https://www.example.com/(WordPress)
  • https://www.example.com/forum/(IPB 论坛)

但是正如您所看到的,如果您尝试登录论坛,它会将您带回到 WordPress 上的“未找到页面”。

.htaccess我们在根目录中使用的文件是:

<IfModule php7_module>
  php_flag display_errors On
  php_value max_execution_time 90
  php_value max_input_time -1
  php_value max_input_vars 1000
  php_value memory_limit -1
  php_value post_max_size 64M
  php_value session.gc_maxlifetime 1440
  php_value session.save_path "/var/cpanel/php/sessions/ea-php70"
  php_value upload_max_filesize 2G
  php_flag zlib.output_compression On
</IfModule>

<IfModule mime_module>
   AddType application/x-httpd-ea-php71___lsphp .php .php7 .phtml
</IfModule>

# 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

.htaccess我们使用的文件是/forum

<IfModule mod_rewrite.c>
  Options -MultiViews
  RewriteEngine On
  RewriteBase /forum
  RewriteCond %{REQUEST_FILENAME} !-f
  RewriteRule \.(js|css|jpeg|jpg|gif|png|ico|map)(\?|$) /404error.php [L,NC]

  RewriteCond %{REQUEST_FILENAME} !-f
  RewriteCond %{REQUEST_FILENAME} !-d
  RewriteRule . /index.php [L]
</IfModule>

我们如何才能阻止根目录中的重写规则.htaccess影响子目录?

由于我们似乎无法让它工作,我们已经尝试了一切方法,因此非常感激您的帮助。

答案1

作为“移动事物”的一部分,你大概移动了论坛从文档根目录进入/forum子目录?

我们如何才能阻止根目录中的重写规则.htaccess影响子目录?

不是。至少根目录中的 mod_rewrite 指令不是问题所在。默认情况下,子目录中的 mod_rewrite 指令完全覆盖父(根)目录中的 mod_rewrite 指令。“问题”在于文件中的 mod_rewrite 指令/forum/.htaccess

在您的/forum/.htaccess文件中,您需要删除RewriteRule 代换。例如以下内容:

RewriteRule . /index.php [L]

应该读:

RewriteRule . index.php [L]

同样适用于/404error.php 代换

否则,该RewriteBase /forum指令将被忽略,您将重写到文件系统根目录,即返回到新的 WordPress 安装 - 这似乎就是您所看到的。

相关内容