Intereting Posts
Как добавить пробел после слова, используя php проверьте, обновляется ли WordPress или публикуется сообщение Как отсортировать почтовый листинг на странице, используя значение настраиваемого поля? Как добавить пользовательскую кнопку в каждое поле настраиваемого типа сообщений. список сообщений из двух категорий на странице – плагин не работает Настроить начало и конец выдержки Невозможно получить «has_sub_field ()» для работы в условном Миниатюры мини-галереи 1px Как добавить строку TinyMCE, которую могут видеть все пользователи, а не просто администраторы? Как я могу запросить db для доступа к текущей информации о сообщении? Как удалить повторяющиеся элементы из get_the_terms_list? Как получить сообщения, опубликованные за последние два дня с помощью WP_Query? Каковы наилучшие методы использования кэширующего плагина на общем хосте? получать последние комментарии к определенной категории Поиск в WordPress не в состоянии найти текст в URL-адресе

Как перенаправить / переписать все / wp-login-запросы

Есть ли простой способ заставить wordpress, php или apache переписать все URL-адреса, которые включают /wp-admin в /admin ?

Я добавил эту запись в файл .htaccess:

 RewriteRule ^admin /wp-login.php [L] 

Однако, хотя domain.com/admin правильно отобразит страницу входа в систему на всех страницах после входа в систему, вы увидите URL-адрес как /wp-admin который я хочу всегда показывать /admin .

Любые мысли по этому поводу?

Solutions Collecting From Web of "Как перенаправить / переписать все / wp-login-запросы"

Чтобы ответить на ваш вопрос как конфигурацию макета URL-адреса apache через mod_rewrite (модуль apache, который обрабатывает переписывание URL-адресов), это может быть полезно:

 RewriteRule ^admin/(.*)$ /wp-admin/$1 [QSA,L] 

(непроверенная конфигурация, проверьте документы, если это делает ошибки)

Это будет в основном переводить любой запрос в / admin / … в / wp-admin / ….

Если это единственное, что вы хотели бы знать, я должен признать, что это немного не по теме для worpdress @ se, так как это вопрос о том, как настроить веб-сервер Apache. Лучшее место может быть serverfault .


Имейте в виду, что это только перезаписывает URL-адреса, которые запрашиваются. WordPress ничего не знает об этом, и он все равно выводит ссылки на / wp-admin / на admin. Существует крючок для любого URL-адреса администратора, который вы, возможно, захотите переписать затем:

 return apply_filters('admin_url', $url, $path, $blog_id); 

Вам нужно будет заменить domain/wp-admin/ part на domain/admin/ с помощью фильтра самостоятельно.

hakre …. Отличный ответ … теперь с последней версией wordpress с отдельным сетевым администратором я использовал ваше решение и добавил в эту часть, чтобы правильно переписать ссылки «Network Admin» таким же образом …

  /** * Change Admin URL * * Copyright (C) 2010 hakre <http://hakre.wordpress.com/> * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Affero General Public License as * published by the Free Software Foundation, either version 3 of the * License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Affero General Public License for more details. * * You should have received a copy of the GNU Affero General Public License * along with this program. If not, see <http://www.gnu.org/licenses/>. * * USAGE: * * Copy the file into wp-content/mu-plugins directory and add the * following RewriteRule to your apache configuration or .htaccess: * * RewriteRule ^admin/(.*)$ wp-admin/$1 [QSA,L] * * It will rewrite the wordpress admin-URL * * from: http://example.com/wp-admin/ ... * to : http://example.com/admin/ ... * * @author hakre <http://hakre.wordpress.com> * @see http://wordpress.stackexchange.com/questions/4037/how-to-redirect-rewrite-all-wp-login-requests/4063 * @todo mod_rewrite_rules - filter to insert into .htacces on plugin activation * */ /** Updated version my Mark Figueredo, <http://gruvii.com/> **/ return ChangeAdminUrlPlugin::bootstrap(); class ChangeAdminUrlPlugin { private $renameFrom = 'wp-admin'; private $renameTo = 'admin'; static $instance; static public function bootstrap() { null === self::$instance && self::$instance = new self() ; return self::$instance; } private function setCookiePath() { defined('SITECOOKIEPATH') || define('SITECOOKIEPATH', preg_replace('|https?://[^/]+|i', '', get_option('siteurl') . '/' ) ); defined('ADMIN_COOKIE_PATH') || define('ADMIN_COOKIE_PATH', SITECOOKIEPATH . $this->renameTo); } public function __construct() { $this->setCookiePath(); add_action('init', array($this, 'init')) ; } public function init() { add_filter('admin_url', array($this, 'admin_url'), 10, 3); add_filter('network_admin_url', array($this, 'network_admin_url'), 10, 3);//Added by Mark Figueredo, <http://gruvii.com/> } public function admin_url($url, $path, $blog_id) { $renameFrom = $this->renameFrom; $renameTo = $this->renameTo; $scheme = 'admin'; $find = get_site_url($blog_id, $renameFrom.'/', $scheme); $replace = get_site_url($blog_id, $renameTo.'/', $scheme); (0 === strpos($url, $find)) && $url = $replace.substr($url, strlen($find)) ; return $url; } // Added by Mark Figueredo, <http://gruvii.com/> public function network_admin_url($url, $path) { $renameFrom = $this->renameFrom; $renameTo = $this->renameTo; $scheme = 'admin'; $find = network_site_url($renameFrom.'/', $scheme); $replace = network_site_url($renameTo.'/', $scheme); (0 === strpos($url, $find)) && $url = $replace.substr($url, strlen($find)) ; return $url; } } 

В дополнение к предыдущим решениям. Я нашел отсутствующие файлы css и script.

исправление

 RewriteEngine On RewriteBase / RewriteRule ^index\.php$ - [L] # uploaded files RewriteRule ^([_0-9a-zA-Z-]+/)?files/(.+) wp-includes/ms-files.php?file=$2 [L] # add a trailing slash to /wp-admin RewriteRule ^([_0-9a-zA-Z-]+/)?wp-admin$ $1wp-admin/ [R=301,L] # Fix using the previous answer. RewriteRule ^admin/(.*)$ wp-admin/$1 [QSA,L] RewriteCond %{REQUEST_FILENAME} -f [OR] RewriteCond %{REQUEST_FILENAME} -d RewriteRule ^ - [L] RewriteRule ^[_0-9a-zA-Z-]+/(wp-(content|admin|includes).*) $1 [L] #Fix to load css js image files for multi site admin urls. #old code RewriteRule ^[_0-9a-zA-Z-]+/(.*\.php)$ $1 [L] RewriteRule ^[_0-9a-zA-Z-]+/(.*\.(php|css|js|png|jpg|gif))$ $1 [L] RewriteRule . index.php [L]