Недавно мы решили использовать WordPress в качестве нашей главной страницы вместо форума, поэтому мы переместили все и установили WordPress в корневой каталог веб-сайта, но, к сожалению, форум (/forum
) (который также полагается на собственное .htaccess
rules) теперь не работает из-за .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
в корневом каталоге, влияющем на подкаталоги?
Помощь будет очень признательна, поскольку мы не можем заставить ее работать, мы все перепробовали.
В рамках этого «перемещения вещей» вы предположительно переместили Форум из корня документа в /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 - похоже, вы это видите.