{"id":5347,"date":"2026-01-19T17:09:29","date_gmt":"2026-01-19T16:09:29","guid":{"rendered":"https:\/\/sutilweb.eu\/?page_id=5347"},"modified":"2026-01-19T17:09:30","modified_gmt":"2026-01-19T16:09:30","slug":"48-establecer-unico-punto-de-acceso-a-una-aplicacion","status":"publish","type":"page","link":"https:\/\/sutilweb.eu\/index.php\/lenguajes\/php\/php-practico\/48-establecer-unico-punto-de-acceso-a-una-aplicacion\/","title":{"rendered":"48. Establecer \u00fanico punto de acceso a una aplicaci\u00f3n"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">En este nuevo cap\u00edtulo vamos a crear una nueva estructura de carpetas, y dentro de esta estructura ser\u00e1 donde vamos a trabajar con este patr\u00f3n de dise\u00f1o denominado MVC.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Para ello, con <strong>VSC<\/strong> creamos un nuevo proyecto denominado mvc, y lo primero que vamos a escribir en \u00e9l va a ser un&nbsp;archivo <strong><em>index.php<\/em><\/strong>, el cual va a tener la siguiente sintaxis.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><em>index.php<\/em><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>&lt;!DOCTYPE html>\n&lt;html lang=\"en\">\n&lt;head>\n  &lt;meta charset=\"UTF-8\">\n  &lt;meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\">\n  &lt;title>Document&lt;\/title>\n&lt;\/head>\n&lt;body>\n  &lt;h1>Hola desde el Index&lt;\/h1>\n&lt;\/body>\n&lt;\/html><\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">Enrutador<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Cuando comencemos a crear p\u00e1ginas vamos a trabajar con un <strong>enrutador,<\/strong> el cual nos indica que&nbsp;indistintamente que nosotros coloquemos una u otra URL, lo que hace el enrutador es que siempre abre la misma p\u00e1gina, lo que significa que vamos a tener siempre un \u00fanico punto de acceso a nuestra aplicaci\u00f3n, y desde esa \u00fanica p\u00e1gina a la cual nos redirige nuestra aplicaci\u00f3n vamos a tener que analizar la URL, y una vez que analizamos la URL vamos a llamar a un determinado controlador, que es como dijimos antes el cerebro y el que va a determinar que acci\u00f3n se debe realizar.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">En este cap\u00edtulo vamos a determinar como podemos hacer que nuestra aplicaci\u00f3n tenga un \u00fanico punto de acceso, para ello&nbsp; vamos a crear un archivo denominado <em>index.php<\/em> que va a ser nuestro \u00fanico punto de acceso, por lo cual cualquier petici\u00f3n que hagamos a trav\u00e9s de la URL queremos que abra este archivo. Este archivo no se va a encontrar en la ra\u00edz de nuestro sitio, sino en una carpeta denominada <em>public<\/em>. public viene de p\u00fablico, cualquier cosa que coloquemos en esta carpeta queremos que sea de acceso p\u00fablico, es decir, que podamos abrirlo desde el navegador, como puedan ser <em>index.php<\/em>, archivos <strong>CSS,<\/strong> archivos <strong>JavaScript,<\/strong> im\u00e1genes&#8230; cualquier cosa que queramos sea p\u00fablica, y al mismo tiempo van a existir otras carpetas, por ejm, <em>app,<\/em> dentro de las mismas podr\u00edamos colocar mo<strong>d<\/strong>elos, <strong>controladores,<\/strong> diferentes cosas&#8230; las cuales est\u00e1n por fuera de la carpeta p\u00fablica y no queremos que sean de acceso p\u00fablico, no queremos que las puedan abrir desde el navegador, ya que puede ser peligroso que personas puedan abrir archivos donde indicamos como nos conectamos a una base de datos u otras acciones. De esta manera le damos un poco de seguridad.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Hasta aqu\u00ed el esquema que tenemos es<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>public (carpeta con todos los archivos de acceso p\u00fablico)\n<ul class=\"wp-block-list\">\n<li>index.php<\/li>\n\n\n\n<li>css<\/li>\n\n\n\n<li>javascript<\/li>\n\n\n\n<li>images<\/li>\n\n\n\n<li>.htaccess<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li>app (carpeta con todos los archivos de seguridad de nuestra aplicaci\u00f3n)<\/li>\n\n\n\n<li>.htaccess<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">.htaccess<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Para poder enrutar todo a nuesro archivo <em>index.php<\/em> tenemos que trabajar con un peque\u00f1o archivo denominado <em>.htaccess<\/em><strong><em>,<\/em><\/strong> este archivo va a poder controlar las peticiones que se hagan a nuestro servidor. Para crear este archivo lo que tenemos que hacer es dentro de nuestra carpeta <strong><em>public<\/em><\/strong> crear nuestro archivo <strong><em>.<\/em><\/strong><em>htaccess<\/em>, cuya sintaxis va a ser la siguiente.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><em>.htaccess<\/em><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Options -MultiViews\nRewriteEngine On\nRewriteBase \/2025\/mvc\/public\/\n\n# Sirve archivos o directorios reales tal cual (css, js, im\u00e1genes\u2026)\nRewriteCond %{REQUEST_FILENAME} -f &#91;OR]\nRewriteCond %{REQUEST_FILENAME} -d\nRewriteRule ^ - &#91;L]\n\n# Todo lo dem\u00e1s, p\u00e1salo a index.php del propio \/public\nRewriteRule ^ index.php &#91;QSA,L]\n\n# Asegura que \/2025\/mvc\/public\/ carga index.php\nDirectoryIndex index.php<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Tambi\u00e9n vamos a crear un archivo .<em>htacces <\/em>en la carpeta ra\u00edz de nuestro proyecto, cuya sintaxis ser\u00e1 la siguiente.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">.<em>htaccess<\/em><\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>RewriteEngine On\nRewriteBase \/2025\/mvc\/\n\n# Si piden la ra\u00edz del proyecto, entra a \/public\/\nRewriteRule ^$ public\/ &#91;L]\n\n# Si no existe archivo\/carpeta, reenv\u00eda la petici\u00f3n a \/public\/ conservando la ruta\nRewriteCond %{REQUEST_FILENAME} !-f\nRewriteCond %{REQUEST_FILENAME} !-d\nRewriteRule ^(.+)$ public\/$1 &#91;L]<\/code><\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">En el pr\u00f3ximo cap\u00edtulo lo que vamos a crear nuestro enrutador, que lo que va a hacer es encargarse de analizar la URL y una vez analizada lo que debe hacer es ejecutar alguna acci\u00f3n, que suele ser llamar a alg\u00fan controlador. En principio lo que haremos ser\u00e1 lograr que se muestre un determinado texto.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>En este nuevo cap\u00edtulo vamos a crear una nueva estructura de carpetas, y dentro de esta estructura ser\u00e1 donde vamos a trabajar con este patr\u00f3n de dise\u00f1o denominado MVC. Para ello, con VSC creamos un nuevo proyecto denominado mvc, y lo primero que vamos a escribir en \u00e9l va a ser un&nbsp;archivo index.php, el cual [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":4518,"menu_order":47,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_uag_custom_page_level_css":"","site-sidebar-layout":"default","site-content-layout":"","ast-site-content-layout":"default","site-content-style":"default","site-sidebar-style":"default","ast-global-header-display":"","ast-banner-title-visibility":"","ast-main-header-display":"","ast-hfb-above-header-display":"","ast-hfb-below-header-display":"","ast-hfb-mobile-header-display":"","site-post-title":"","ast-breadcrumbs-content":"","ast-featured-img":"","footer-sml-layout":"","ast-disable-related-posts":"","theme-transparent-header-meta":"","adv-header-id-meta":"","stick-header-meta":"","header-above-stick-meta":"","header-main-stick-meta":"","header-below-stick-meta":"","astra-migrate-meta-layouts":"default","ast-page-background-enabled":"default","ast-page-background-meta":{"desktop":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"ast-content-background-meta":{"desktop":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"footnotes":""},"class_list":["post-5347","page","type-page","status-publish","hentry"],"uagb_featured_image_src":{"full":false,"thumbnail":false,"medium":false,"medium_large":false,"large":false,"1536x1536":false,"2048x2048":false},"uagb_author_info":{"display_name":"Sutil Web","author_link":"https:\/\/sutilweb.eu\/index.php\/author\/sutilweb\/"},"uagb_comment_info":0,"uagb_excerpt":"En este nuevo cap\u00edtulo vamos a crear una nueva estructura de carpetas, y dentro de esta estructura ser\u00e1 donde vamos a trabajar con este patr\u00f3n de dise\u00f1o denominado MVC. Para ello, con VSC creamos un nuevo proyecto denominado mvc, y lo primero que vamos a escribir en \u00e9l va a ser un&nbsp;archivo index.php, el cual&hellip;","_links":{"self":[{"href":"https:\/\/sutilweb.eu\/index.php\/wp-json\/wp\/v2\/pages\/5347","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/sutilweb.eu\/index.php\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/sutilweb.eu\/index.php\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/sutilweb.eu\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/sutilweb.eu\/index.php\/wp-json\/wp\/v2\/comments?post=5347"}],"version-history":[{"count":4,"href":"https:\/\/sutilweb.eu\/index.php\/wp-json\/wp\/v2\/pages\/5347\/revisions"}],"predecessor-version":[{"id":5351,"href":"https:\/\/sutilweb.eu\/index.php\/wp-json\/wp\/v2\/pages\/5347\/revisions\/5351"}],"up":[{"embeddable":true,"href":"https:\/\/sutilweb.eu\/index.php\/wp-json\/wp\/v2\/pages\/4518"}],"wp:attachment":[{"href":"https:\/\/sutilweb.eu\/index.php\/wp-json\/wp\/v2\/media?parent=5347"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}