我们最近决定使用 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 安装 - 这似乎就是您所看到的。