Недавно мы решили использовать WordPress в качестве главной страницы вместо форума, поэтому мы переместили вещи и установили WordPress в корневой каталог сайта, но, к сожалению, форум (/forum
) (который также полагается на собственные правила .htaccess
) теперь сломан из-за . htaccess
(в корневом каталоге сайта)
Структура сайта такова:
https://www.example.com/
(WordPress)https://www.example.com/forum/
(форум IPB)Но, как вы можете видеть, если вы попытаетесь войти на форум, это отбросит вас назад на "Not found page" на 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
в корневой директории, влияющие на поддиректории?
Помощь будет очень признательна, так как мы не можем заставить его работать, мы перепробовали все.
В рамках этого "перемещения вещей",вы предположительно переместили форум из корня документа в подкаталог / 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 - похоже, именно это вы и видите.