Назад | Перейти на главную страницу

Wordpress .htaccess ломает подкаталоги

Недавно мы решили использовать WordPress в качестве нашей главной страницы вместо форума, поэтому мы переместили все и установили WordPress в корневой каталог веб-сайта, но, к сожалению, форум (/forum) (который также полагается на собственное .htaccess rules) теперь не работает из-за .htaccess (в корневом каталоге сайта)

Структура сайта:

Но, как вы можете видеть, если вы попытаетесь войти на форум, он вернет вас на страницу «Не найдено» в 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 - похоже, вы это видите.