Hay múltiples razones por las que alguien quiera ocultar el hecho de que un sitio esté creado con WordPress, pero para mi la única es la seguridad, pues es tan popular que suele ser objetivo de los hackers, y nunca está de más ponérselo complicado.
Afortunadamente es relativamente sencillo ocultar el hecho de que un sitio está hecho con WordPress, así que vamos a ver algunos modos de conseguirlo, luego tú aplicas los que más te gusten o sirvan.
Eliminar la categoría de la URL
Una de las evidencias de que un sitio está hecho con WordPress es el /category/ en las URLs así que un paso para conseguir esa ocultación deseada sería eliminar la categoría de las URLs. Conseguirlo es tan sencillo como añadir la siguiente regla a tu fichero .htaccess:
1 | RewriteRule ^category/(.+)$ http: |
Elimina cualquier referencia en el tema
Parece obvio, pero he visto más de un sitio en el que habían ocultado las carpetas o incluso la pantalla de acceso y luego en el tema se leía eso de “Powered by WordPress“, así que aunque parezca una tontería repasa sobre todo el pié de página (footer.php) de tu tema activo para eliminar cualquier referencia en este sentido.
Cambia la ubicación de la carpeta de subida de archivos
Otro elemento diferenciados de WordPress es que, por defecto, toda instalación subirá los archivos multimedia a la carpeta /uploads/ así que es un elemento a ocultar. Para cambiar la ubicación de la carpeta donde se suben los archivos en WordPress nada más fácil que añadas, antes de la línea require_once(ABSPATH.’wp-settings.php’); el siguiente código al fichero de configuración de WordPress (wp-config.php):
1 | define( 'UPLOADS' , 'wp-content/archivos' ); |
Lo ideal es hacerlo en una instalación nueva, para que no haya nada en la carpeta por defecto, en caso contrario te tocará mover todo lo que haya en /uploads/ a /archivos/
Cambiar la ubicación de wp-content
1 | define( 'WP_CONTENT_DIR' , 'NUEVA RUTA A WP-CONTENT' ); |
Solo ten en cuenta el importante detalle de que la nueva ruta sea accesible vía web, así que lo mejor es crear una carpeta nueva, por ejemplo /files/ y la definas así.
También es importante, por supuesto, hacer esta modificación en una instalación nueva y comprobar que tus plugins son compatibles con esta posibilidad, que hay algunos que no funcionan en una ubicación distinta a la por defecto.
Cambiar la escritura de URLs
Una versión refinada de lo anterior sería, sin cambiar nada de su sitio, cambiar totalmente el rewrite de las URLs para que no haya ninguna referencia a /wp-content/ a /themes/ o a /plugins/.
Podemos crear una función como la siguiente:
10 | function nowp_add_rewrites( $content ) { |
12 | $nowp_new_non_wp_rules = array ( |
13 | 'assets/(.*)' => THEME_PATH . '/include/$1' , |
14 | 'plugins/(.*)' => RELATIVE_PLUGIN_PATH . '/$1' |
16 | $wp_rewrite ->non_wp_rules = array_merge ( $wp_rewrite ->non_wp_rules, $nowp_new_non_wp_rules ); |
20 | function nowp_clean_urls( $content ) { |
21 | if ( strpos ( $content , RELATIVE_PLUGIN_PATH) > 0) { |
22 | return str_replace ( '/' . RELATIVE_PLUGIN_PATH, '/plugins' , $content ); |
24 | return str_replace ( '/' . THEME_PATH, '' , $content ); |
29 | if ( !is_multisite() && !is_child_theme() ) { |
30 | add_action( 'generate_rewrite_rules' , 'nowp_add_rewrites' ); |
35 | 'stylesheet_directory_uri' , |
36 | 'template_directory_uri' , |
40 | add_filters( $tags , 'nowp_clean_urls' ); |
Fíjate que en este ejemplo se da por hecho que existe una carpeta /include/ en el tema, que debes cambiar a la adecuada de tu tema activo.
Cambiar la ubicación de wp-config.php
Además, también es buena idea cambiar la ubicación del mismo fichero de configuración, sobre todo por cuestiones de seguridad. En esta ocasión lo único que tienes que hacer es moverlo a la carpeta superior a la de la instalación de WordPress, por ejemplo, de /public_html/web/ a /public_html/.
Oculta las referencias a WordPress en la cabecera del tema
Todos los temas WordPress contienen una serie de referencias en su cabecera que fácilmente identificarán tu sitio como un WordPress. Conviene, por diversos motivos, eliminarlas, sobre todo ocultar la que muestra la versión de WordPress. Para ello podemos crear una función o plugin que elimine toda referencia a la hoja de estilos, versión de WordPress y demás elementos que lo “delatan”:
09 | function nowp_head_cleanup() { |
11 | remove_action( 'wp_head' , 'rsd_link' ); |
12 | remove_action( 'wp_head' , 'wp_generator' ); |
13 | remove_action( 'wp_head' , 'feed_links' , 2); |
14 | remove_action( 'wp_head' , 'index_rel_link' ); |
15 | remove_action( 'wp_head' , 'wlwmanifest_link' ); |
16 | remove_action( 'wp_head' , 'feed_links_extra' , 3); |
17 | remove_action( 'wp_head' , 'start_post_rel_link' , 10, 0); |
18 | remove_action( 'wp_head' , 'parent_post_rel_link' , 10, 0); |
19 | remove_action( 'wp_head' , 'adjacent_posts_rel_link' , 10, 0); |
20 | remove_action( 'wp_head' , 'adjacent_posts_rel_link_wp_head' , 10, 0); |
21 | remove_action( 'wp_head' , 'wp_shortlink_wp_head' , 10, 0); |
22 | remove_action( 'wp_head' , 'feed_links' , 2); |
23 | remove_action( 'wp_head' , 'feed_links_extra' , 3); |
25 | global $wp_widget_factory ; |
26 | remove_action( 'wp_head' , array ( $wp_widget_factory ->widgets[ 'WP_Widget_Recent_Comments' ], 'recent_comments_style' )); |
28 | if (! class_exists ( 'WPSEO_Frontend' )) { |
29 | remove_action( 'wp_head' , 'rel_canonical' ); |
30 | add_action( 'wp_head' , 'nowp_rel_canonical' ); |
33 | function nowp_rel_canonical() { |
40 | if (! $id = $wp_the_query ->get_queried_object_id()) { |
44 | $link = get_permalink( $id ); |
45 | echo "\t<link rel=\"canonical\" href=\"$link\">\n" ; |
47 | add_action( 'init' , 'nowp_head_cleanup' ); |
53 | add_filter( 'the_generator' , '__return_false' ); |
62 | function nowp_language_attributes() { |
63 | $attributes = array (); |
66 | if (function_exists( 'is_rtl' )) { |
67 | if (is_rtl() == 'rtl' ) { |
68 | $attributes [] = 'dir="rtl"' ; |
72 | $lang = get_bloginfo( 'language' ); |
74 | if ( $lang && $lang !== 'es-ES' ) { |
75 | $attributes [] = "lang=\"$lang\"" ; |
77 | $attributes [] = 'lang="es"' ; |
80 | $output = implode( ' ' , $attributes ); |
81 | $output = apply_filters( 'nowp_language_attributes' , $output ); |
85 | add_filter( 'language_attributes' , 'nowp_language_attributes' ); |
Cambia las rutas de acceso y administración
De nada serviría todo lo anterior si cualquiera puede ver la ruta de acceso a la administración de tu WordPress ¿no?
Hay muchas maneras de limitar el acceso a la pantalla de registro/acceso y la administración, pero quizás el más cómodo es usar un plugin como HC Custom admin. Puedes personaliza fácilmente las nuevas URLs a tu gusto.
Impedir acceder a la administración de WordPress
Ahora bien, si lo prefieres, igual es mejor no complicarte la vida y, directamente, impedir que nadie acceda a la administración de WordPress, ofreciendo una página de error 404, mucho más convincente.
Si esta es tu elección simplemente añade el siguiente código a tu plugin de utilidades o al archivo functions.php:
02 | add_action( 'login_form' , 'redirect_wp_admin' ); |
04 | function redirect_wp_admin(){ |
05 | $redirect_to = $_SERVER [ 'REQUEST_URI' ]; |
07 | if ( count ( $_REQUEST )> 0 && array_key_exists ( 'redirect_to' , $_REQUEST )){ |
08 | $redirect_to = $_REQUEST [ 'redirect_to' ]; |
09 | $check_wp_admin = stristr ( $redirect_to , 'wp-admin' ); |
11 | wp_safe_redirect( '404.php' ); |
via | ayudaWordPress
Si te ha gustado haz click en la publicidad para poder mantener la web.
GRACIAS
También me puedes seguir por las redes sociales o suscribirte por email para estar informado de las ultimas noticias que publico.
Mas abajo tienes artículos relacionados con este mismo que acabas de leer saludos y gracias por tu visita
Articulos relacionados por categorias
No hay comentarios:
Publicar un comentario