Intereting Posts
Невозможно добавить дополнительные элементы в основной навигатор (wp_nav_menu_items) «Wp_editor» не отображает TinyMCE правильно, когда квадратные скобки используются в имени Предотвращение таймаута сеанса Изменить ссылки на edit.php Добавить бесконечный свиток в Ajax Loaded Category Query Как предотвратить регистрацию определенных имен пользователей? Использование AJAX в контактной форме WordPress способом Изменение параметров ссылок при наведении указателя на заголовок сообщения Добавление префикса к названию темы ПК WordPress EduPress и бизнес-приложение Тема не установлена ​​ Разрешение загрузки wordpress на nginx & ubuntu Получение пользовательских метаданных из WP REST API Добавить запланированную страницу или сообщение в разделе меню на задней панели После добавления add_role в functions.php и создания пользователя не удается войти в админ Виджет WordPress не сохраняет данные

WordPress в определенных подкаталогах, неявно не root

Теперь у меня есть существующее приложение, запущенное на моем корневом сайте. Используя .htaccess, возможно ли, чтобы одна установка WordPress управляла подкаталогами? Например, / press /, / careers /, / blog / будет обслуживаться WordPress. Проблема в том, что я не хочу, чтобы WordPress подавался в корне. Я подозреваю что-то хитрое с permalinks и .htaccess.

Вариант 2 для нас здесь заключается в создании CRUD в нашем приложении, но мы действительно хотели использовать WordPress (для определенных страниц).

Solutions Collecting From Web of "WordPress в определенных подкаталогах, неявно не root"

Попробуй это:

Переименуйте index.php (внутри корневой папки WordPress) в index_.php или wordpress_index.php или что угодно. Таким образом вы можете загрузить текущее приложение, а не индекс WordPress. После этого откройте .htaccess в редакторе и измените его примерно так:

# 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 

к этому:

 # BEGIN WordPress <IfModule mod_rewrite.c> RewriteEngine On RewriteBase / RewriteRule ^wordpress_index\.php$ - [L] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule . /wordpress_index.php [L] </IfModule> # END WordPress 

Там, где указано, index.php изменит его на новое имя индексного файла. Таким образом, все остальные страницы и постоянные ссылки будут работать, но ваш индекс будет вашим старым приложением.

Примечание. Решение user35541 является хорошим, но каждый раз, когда вы хотите добавить другую страницу, вам придется еще раз добавить ее вручную в .htaccess. Плюс, если утверждение user35541 о том, что редактирование файлов ядра плохое, было правильным, плагинов для WP не было (это косвенно косвенно редактирует основные файлы). Единственная проблема при редактировании основных файлов напрямую заключается в том, что они будут перезаписаны при обновлении, но поскольку вы переименовываете файл (или создаете новый, если хотите), это не будет затронуто.

Изменить (даже переименовать) Основные файлы WP никогда не являются хорошей практикой.

Попробуйте это вместо этого:

Установите WordPress в фитическую подпапку в корне вашего сайта (например, / WP).

После этого в файле .htaccess в корневой папке вашего сайта вставьте что-то вроде этого:

 <IfModule mod_rewrite.c> RewriteEngine On RewriteBase / RewriteRule blog/(.*) WP/press/$1 [L] RewriteRule press/(.*) WP/press/$1 [L] RewriteRule careers/(.*) WP/careers/$1 [L] RewriteRule anything_here/(.*) WP/anything_here/$1 [L] </IfModule> 

Вне курса добавьте правило перезаписи для каждой (виртуальной) подпапки, которую вы хотите использовать с wordpress. Виртуальные вложенные папки могут представлять страницы, категории или что-либо еще в wordpress.

Не забудьте включить симпатичные постоянные ссылки в wordpress .

Таким образом, только ваше текущее приложение находится в корневой папке, а everithing хорошо организован и поддерживается.

Обновление. В этом решении добавление новой страницы WP означает добавление нового правила .htaccess. Обходной путь заключается в использовании общей родительской страницы: создать страницу с именем «Страницы» (slug «pages»), а затем создать любую другую страницу в качестве дочернего элемента этой страницы.

В .htaccess добавьте:

 RewriteRule pages/(.*) WP/pages/$1 [L] 

теперь каждая страница, которая является дочерней (даже внуком) из «Страницы», будет правильно подана.

Вы можете использовать mod_alias для Apache для этого. Прежде чем двигаться дальше, убедитесь, что на вашем сервере установлено это. Самый простой способ – открыть конфигурацию apache и выполнить поиск «псевдонима». У вас должна быть такая строка, без комментариев:

 LoadModule alias_module libexec/apache2/mod_alias.so 

Далее, в вашей конфигурации apache (или конфигурации виртуального хоста для рассматриваемого сайта) добавьте следующий блок, заменив «/ var / www / wordpress» на путь установки WordPress:

 aliasMatch ^(/wp-.*) /var/www/wordpress$1 aliasMatch ^/(blog|careers|press).* /var/www/wordpress/index.php <Directory /var/www/wordpress> Options Indexes MultiViews FollowSymLinks AllowOverride All Order allow,deny Allow from all </Directory> 

Перезапустите apache, и, как волшебство, он должен просто работать!