Добавьте эту строку, чтобы предотвратить отображение подпапки в URL-адресе

Добавьте эту строку, чтобы предотвратить отображение подпапки в URL-адресе

У меня есть настройка, где статический веб-сайт находится в корневой папке, а Wordpress находится в подпапке. Поэтому мне нужно переписать все запросы в index.html, а все запросы, связанные с Wordpress, должны идти в подпапку. Я добиваюсь этого с помощью двух файлов .htaccess: один в корневой папке, а другой в подпапке Wordpress.

Корневой .htaccess:

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{REQUEST_URI} ^/wp-.+
RewriteCond %{REQUEST_URI} !^/wordpress/
RewriteRule (wp-.*)$ /wordpress/$1 [L]
# Rewrite rule for frontend
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.html [L]
</IfModule>

Подпапка Wordpress .htaccess:

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
RewriteBase /wordpress/
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /wordpress/index.php [L]
</IfModule>

Это работает, но когда я пытаюсь открыть его, /wp-admin/меня перенаправляют на /wp-login.php?redirect_to=https%3A%2F%2Fwww.example.com%2Fwordpress%2Fwp-admin%2F&reauth=1страницу, на которую в URL-адресе отображается подпапка.

Есть ли способ скрыть подпапку?

решение1

Чтобы скрыть подпапку в URL для запросов, связанных с WordPress, вы можете немного изменить настройки. Вы можете оставить корневой файл .htaccess как есть, но внести некоторые изменения в файл .htaccess в подпапке WordPress. Вот как это можно сделать:

  1. Измените файл .htaccess в подпапке WordPress ( e.g.,/wordpress/) следующим образом:
RewriteEngine на RewriteBase /wordpress/ RewriteRule ^index\.php$ - [L]

Добавьте эту строку, чтобы предотвратить отображение подпапки в URL-адресе

RewriteCond %{REQUEST_URI} !^/wordpress/

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

Добавляя условие RewriteCond %{REQUEST_URI} !^/wordpress/, вы гарантируете, что запросы к папке /wp-admin/ не будут затронуты этим правилом перезаписи, поэтому подпапка не будет отображаться в URL-адресе для запросов, связанных с WordPress.

  1. В корневом файле .htaccess вы можете упростить правила перезаписи следующим образом index.html:

    RewriteEngine включен

    Исключить запросы к подпапке /wordpress/ из этого правила

    RewriteCond %{REQUEST_URI} !^/wordpress/

    Переписать правило для интерфейса

    RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /index.html [L]

С этими изменениями запросы, связанные с WordPress, будут по-прежнему обрабатываться подпапкой WordPress, и подпапка не будет отображаться в URL при доступе к /wp-admin/. Другие запросы будут перезаписываться в index.html в корневой папке, как и раньше.

Связанный контент