{"id":4095,"date":"2023-09-29T23:19:04","date_gmt":"2023-09-30T05:19:04","guid":{"rendered":"https:\/\/linuxitos.com\/main\/?p=4095"},"modified":"2023-09-29T23:19:05","modified_gmt":"2023-09-30T05:19:05","slug":"usar-url-directa-en-codeigniter-4-4-1","status":"publish","type":"post","link":"https:\/\/linuxitos.com\/main\/usar-url-directa-en-codeigniter-4-4-1\/","title":{"rendered":"Usar URL directa en Codeigniter 4.4.1"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\"><\/p>\n\n\n\n<figure class=\"wp-block-image size-full\"><a href=\"https:\/\/linuxitos.com\/main\/wp-content\/uploads\/2023\/09\/url_direct_codeginiter_4.4.1.png\"><img loading=\"lazy\" decoding=\"async\" width=\"860\" height=\"485\" src=\"https:\/\/linuxitos.com\/main\/wp-content\/uploads\/2023\/09\/url_direct_codeginiter_4.4.1.png\" alt=\"\" class=\"wp-image-4096\" srcset=\"https:\/\/linuxitos.com\/main\/wp-content\/uploads\/2023\/09\/url_direct_codeginiter_4.4.1.png 860w, https:\/\/linuxitos.com\/main\/wp-content\/uploads\/2023\/09\/url_direct_codeginiter_4.4.1-300x169.png 300w, https:\/\/linuxitos.com\/main\/wp-content\/uploads\/2023\/09\/url_direct_codeginiter_4.4.1-768x433.png 768w\" sizes=\"auto, (max-width: 860px) 100vw, 860px\" \/><\/a><\/figure>\n\n\n\n<h1 class=\"wp-block-heading\">Contexto<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">El 4 de septiembre fue lanzado una nueva versi\u00f3n del framework de codeigniter 4.4.1, y con ello algunos cambios en las rutas y uso de dicho framework.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">En la versi\u00f3n actual ya no es tan f\u00e1cil poder usar la url directa en el nevegador, es decir que se descargue el framework y que se pueda acceder al desarrollo del proyecto que se est\u00e9 trabajando directamente desde la url, sino que se debe de lanzar con spark.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u00c9ste depender\u00e1 de cada uno, pero cuando se trabaja en modo de desarrollo, se requieren realizar los procesos r\u00e1pidos, y en lo personal, prefiero configurar el entorno de manera directa, por lo que se realizan los siguientes cambios para poder utilizarlo desde la url directamente.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Adicional a \u00e9ste configuraci\u00f3n, en los proyectos en entorno de desarrollo, en mi caso utilizo XAMPP, de tal modo que evito instalar PHP directamente en mi equipo.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Crear un proyecto con composer<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Crear un proyecto o descargar el framework desde github<\/p>\n\n\n\n<pre style=\"background: rgb(54, 63, 72); border-radius: 6px; border: 0px; box-sizing: border-box; color: white; font-family: menlo, monaco, monospace; font-style: inherit; font-weight: inherit; line-height: 15.68px; margin-bottom: 1.1em; max-width: 100%; outline: 0px; overflow: auto; padding: 13.125px 16.4062px; vertical-align: baseline; white-space: pre-wrap; word-wrap: break-word;\">composer create-project codeigniter4\/appstarter blog<\/pre>\n\n\n\n<h1 class=\"wp-block-heading\">Modificar app\/Config\/App.php<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">Abrir el archivo y buscar la l\u00ednea 61 que dice $uriProtocol y cambiarlo a PATH_INFO:<\/p>\n\n\n\n<pre style=\"background: rgb(242, 242, 242); border-radius: 2px; border: 1px solid #aaa; box-sizing: border-box; color: #222; font-family: menlo, monaco, monospace; font-style: inherit; font-weight: inherit; line-height: 15.68px; margin-bottom: 1.1em; max-width: 100%; outline: 0px; overflow: auto; padding: 13.125px 16.4062px; vertical-align: baseline; white-space: pre-wrap; word-wrap: break-word;\">[...]\n\npublic string $uriProtocol = 'PATH_INFO';\n\n[...]<\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Una vez editado el archivo, guardar y salir.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Archivo .env<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Modificar el archivo .env a\u00f1adiendo la url completa del proyecto:<\/p>\n\n\n\n<pre style=\"background: rgb(242, 242, 242); border-radius: 2px; border: 1px solid #aaa; box-sizing: border-box; color: #222; font-family: menlo, monaco, monospace; font-style: inherit; font-weight: inherit; line-height: 15.68px; margin-bottom: 1.1em; max-width: 100%; outline: 0px; overflow: auto; padding: 13.125px 16.4062px; vertical-align: baseline; white-space: pre-wrap; word-wrap: break-word;\">[...]\n\napp.baseURL = 'http:\/\/localhost\/blog\/'\n\n[...]<\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Guardar el archivo<\/p>\n\n\n\n<h1 class=\"wp-block-heading\">Archivo index.php<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">Copiar el archivo index.php de la ruta del proyecto vendor\/codeigniter4\/framework\/public\/ y pegarlo en la ra\u00edz del proyecto:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Abrir el archivo y buscar la l\u00ednea que dice:<\/p>\n\n\n\n<pre style=\"background: rgb(242, 242, 242); border-radius: 2px; border: 1px solid #aaa; box-sizing: border-box; color: #222; font-family: menlo, monaco, monospace; font-style: inherit; font-weight: inherit; line-height: 15.68px; margin-bottom: 1.1em; max-width: 100%; outline: 0px; overflow: auto; padding: 13.125px 16.4062px; vertical-align: baseline; white-space: pre-wrap; word-wrap: break-word;\">[...]\n\nrequire FCPATH . '..\/app\/Config\/Paths.php';\n\n[...]<\/pre>\n\n\n\n<p class=\"wp-block-paragraph\">Y reemplazarlo por:<\/p>\n\n\n\n<pre style=\"background: rgb(242, 242, 242); border-radius: 2px; border: 1px solid #aaa; box-sizing: border-box; color: #222; font-family: menlo, monaco, monospace; font-style: inherit; font-weight: inherit; line-height: 15.68px; margin-bottom: 1.1em; max-width: 100%; outline: 0px; overflow: auto; padding: 13.125px 16.4062px; vertical-align: baseline; white-space: pre-wrap; word-wrap: break-word;\">[...]\n\nrequire FCPATH . 'app\/Config\/Paths.php';\n\n[...]<\/pre>\n\n\n\n<h1 class=\"wp-block-heading\">A\u00f1adir archivo .htaccess<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">El siguiente archivo a\u00f1ade la funcionalidad para acceder a las urls, proteger algunas rutas y archivos de configuraci\u00f3n como el env:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code># Disable directory browsing\nOptions All -Indexes\n\n# ----------------------------------------------------------------------\n# Rewrite engine\n# ----------------------------------------------------------------------\n\n# Turning on the rewrite engine is necessary for the following rules and features.\n# FollowSymLinks must be enabled for this to work.\n&lt;IfModule mod_rewrite.c>\n\tOptions +FollowSymlinks\n\tRewriteEngine On\n\n\t# If you installed CodeIgniter in a subfolder, you will need to\n\t# change the following line to match the subfolder you need.\n\t# http:\/\/httpd.apache.org\/docs\/current\/mod\/mod_rewrite.html#rewritebase\n\t# RewriteBase \/\n\n\t# Redirect Trailing Slashes...\n\tRewriteCond %{REQUEST_FILENAME} !-d\n    \tRewriteRule ^(.*)\/$ \/$1 &#91;L,R=301]\n\n\t# Rewrite \"www.example.com -> example.com\"\n\tRewriteCond %{HTTPS} !=on\n\tRewriteCond %{HTTP_HOST} ^www\\.(.+)$ &#91;NC]\n\tRewriteRule ^ http:\/\/%1%{REQUEST_URI} &#91;R=301,L]\n\n\t# Checks to see if the user is attempting to access a valid file,\n    # such as an image or css document, if this isn't true it sends the\n    # request to the front controller, index.php\n\tRewriteCond %{REQUEST_FILENAME} !-f\n\tRewriteCond %{REQUEST_FILENAME} !-d\n\tRewriteRule ^(.*)$ index.php\/$1 &#91;L]\n\n\t# Ensure Authorization header is passed along\n    RewriteCond %{HTTP:Authorization} .\n    RewriteRule .* - &#91;E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]\n&lt;\/IfModule>\n\n&lt;IfModule !mod_rewrite.c>\n    # If we don't have mod_rewrite installed, all 404's\n    # can be sent to index.php, and everything works as normal.\n    ErrorDocument 404 index.php\n&lt;\/IfModule>\n\n# Disable server signature start\n    ServerSignature Off\n# Disable server signature end\n\n&lt;Files .env>\norder allow,deny\nDeny from all\n&lt;\/Files>\n\n&lt;Files spark>\norder allow,deny\nDeny from all\n&lt;\/Files>\n\n&lt;FilesMatch \"\\.(ttf|otf|eot|woff|woff2)$\">\n\t&lt;IfModule mod_headers.c>\n\tHeader set Access-Control-Allow-Origin \"*\"\n\t&lt;\/IfModule>\n&lt;\/FilesMatch><\/code><\/pre>\n\n\n\n<h1 class=\"wp-block-heading\">Permisos al proyecto<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">Finalmente se requiere asignar los permisos necesarios para el correcto funcionamiento del proyecto los cuales son los siguientes:<\/p>\n\n\n\n<pre style=\"background: rgb(54, 63, 72); border-radius: 6px; border: 0px; box-sizing: border-box; color: white; font-family: menlo, monaco, monospace; font-style: inherit; font-weight: inherit; line-height: 15.68px; margin-bottom: 1.1em; max-width: 100%; outline: 0px; overflow: auto; padding: 13.125px 16.4062px; vertical-align: baseline; white-space: pre-wrap; word-wrap: break-word;\">sudo chown -R daemon:tuUsuario directorio_proyecto<\/pre>\n\n\n\n<pre style=\"background: rgb(54, 63, 72); border-radius: 6px; border: 0px; box-sizing: border-box; color: white; font-family: menlo, monaco, monospace; font-style: inherit; font-weight: inherit; line-height: 15.68px; margin-bottom: 1.1em; max-width: 100%; outline: 0px; overflow: auto; padding: 13.125px 16.4062px; vertical-align: baseline; white-space: pre-wrap; word-wrap: break-word;\">sudo chmod 775 directorio_proyecto -R<\/pre>\n\n\n\n<h1 class=\"wp-block-heading\">Abrir proyecto<\/h1>\n\n\n\n<p class=\"wp-block-paragraph\">Finalmente solo queda abrir la url que se estableci\u00f3 como ruta del proyecto en el navegador, y se podr\u00e1 acceder a \u00e9l sin problemas.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><a href=\"https:\/\/linuxitos.com\/main\/wp-content\/uploads\/2023\/09\/image.png\"><img loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"680\" src=\"https:\/\/linuxitos.com\/main\/wp-content\/uploads\/2023\/09\/image-1024x680.png\" alt=\"\" class=\"wp-image-4100\" srcset=\"https:\/\/linuxitos.com\/main\/wp-content\/uploads\/2023\/09\/image-1024x680.png 1024w, https:\/\/linuxitos.com\/main\/wp-content\/uploads\/2023\/09\/image-300x199.png 300w, https:\/\/linuxitos.com\/main\/wp-content\/uploads\/2023\/09\/image-768x510.png 768w, https:\/\/linuxitos.com\/main\/wp-content\/uploads\/2023\/09\/image.png 1493w\" sizes=\"auto, (max-width: 1024px) 100vw, 1024px\" \/><\/a><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Y eso ser\u00eda todo, y recuerden que \u00e9sto es s\u00f3lo para entorno de desarrollo.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Gracias por visitar.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Contexto El 4 de septiembre fue lanzado una nueva versi\u00f3n del framework de codeigniter 4.4.1, y con ello algunos cambios en las rutas y uso de dicho framework. En la versi\u00f3n actual ya no es tan f\u00e1cil poder usar la url directa en el nevegador, es decir que se descargue el framework y que se [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":4096,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1127,1003,62,1147,1543,7,1541,10],"tags":[1938,1937],"class_list":["post-4095","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-agregar-proyecto-a-xampp","category-change-port-for-xampp","category-codeigniter","category-common-errors-of-xampp","category-developer","category-fedora","category-web-developer","category-xampp","tag-codeigniter-4-4-1","tag-url-directa"],"_links":{"self":[{"href":"https:\/\/linuxitos.com\/main\/wp-json\/wp\/v2\/posts\/4095","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/linuxitos.com\/main\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/linuxitos.com\/main\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/linuxitos.com\/main\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/linuxitos.com\/main\/wp-json\/wp\/v2\/comments?post=4095"}],"version-history":[{"count":4,"href":"https:\/\/linuxitos.com\/main\/wp-json\/wp\/v2\/posts\/4095\/revisions"}],"predecessor-version":[{"id":4101,"href":"https:\/\/linuxitos.com\/main\/wp-json\/wp\/v2\/posts\/4095\/revisions\/4101"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/linuxitos.com\/main\/wp-json\/wp\/v2\/media\/4096"}],"wp:attachment":[{"href":"https:\/\/linuxitos.com\/main\/wp-json\/wp\/v2\/media?parent=4095"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/linuxitos.com\/main\/wp-json\/wp\/v2\/categories?post=4095"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/linuxitos.com\/main\/wp-json\/wp\/v2\/tags?post=4095"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}