php codeigniter iis web-config

php - Archivo de configuración web para una aplicación codeigniter



iis web-config (5)

Sufro con un archivo de configuración web que no reescribe la url de mi aplicación codeigniter. aquí está el archivo de configuración web.

<?xml version="1.0" encoding="UTF-8"?> <configuration> <system.webServer> <rewrite> <rules> <rule name="Clean URL" stopProcessing="true"> <match url=".*" /> <conditions> <add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" /> <add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" /> </conditions> <action type="Rewrite" url="index.php?{R:1}" appendQueryString="true" /> </rule> </rules> </rewrite> </system.webServer> </configuration>

aquí está mi sitio: http://gandhitomodi.com

No puedo obtener este tipo de URL http://gandhitomodi.com/controller/method/

por ejemplo

http://gandhitomodi.com/welcome/index/

Por favor, ayúdame a superar esto.

**** Editado *****

aquí está la ruta.php

$route[''default_controller'']="welcome/index"; $route[''sendmail'']="welcome/send";

aquí está la configuración config.php que he cambiado.

$config[''base_url'']="http://gandhitomodi.com/"; $config[''index_page'']=''''; $config[''url_protocal'']=''PATH_INFO'';`


Primero necesitaremos eliminar index.php de la URL

entonces en route.php cambiarás la línea

$route[''default_controller''] = "welcome"; $route[''404_override''] = ''notfound'';

y en config.php cambiarás la línea

$config[''uri_protocol''] = ''AUTO'';

Después de eso, deberá agregar el archivo .htaccess en el directorio raíz del sitio web de esta manera:

/application /system /assets /.htaccess

y agrega este código al archivo .htaccess

Header append X-FRAME-OPTIONS "SAMEORIGIN" Header set Cache-Control "no-store" Header set X-Content-Type-Options "nosniff" Header set Strict-Transport-Security "max-age=31536000; includeSubDomains" ErrorDocument 403 /notfound.php RewriteEngine on RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule .* index.php/$0 [PT,L] <IfModule !mod_rewrite.c> # If we don''t have mod_rewrite installed, all 404''s # can be sent to index.php, and everything works as normal. # Submitted by: ollakalla ErrorDocument 404 /index.php </IfModule>

Entonces puedes acceder a tu método en el controlador como este ejemplo

class Reviews extends CI_Controller { public function latest() { // Some code here } }

por http://gandhitomodi.com/reviews/latest/



<?xml version="1.0" encoding="UTF-8"?> <configuration> <system.webServer> <rewrite> <rules> <rule name="Imported Rule 1" stopProcessing="true"> <match url="^(.*)$" ignoreCase="false" /> <conditions logicalGrouping="MatchAll"> <add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" /> <add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" /> </conditions> <action type="Rewrite" url="index.php?url={R:1}" appendQueryString="true" /> </rule> </rules> </rewrite> </system.webServer> </configuration>

puedes probar este código, funcionará bien, también estoy usando este código solamente

gracias


También tuve un problema cuando estaba trabajando con mssql y el servidor de Windows y la plataforma codeigniter. Es tan difícil para mí eliminar index.php de url o puedes decir pretty url. Después de mucha discusión e I + D. Obtuve algunos cambios en el archivo webcofig en la raíz del servidor.

Reescribir la regla para la configuración web para eliminar index.php es:

<configuration> <appSettings> // default code.. </appSettings> <system.webServer> <handlers> <clear /> // another default code </handlers> <rewrite> <rules> <rule name="Rule" stopProcessing="true"> <match url="^(.*)$" ignoreCase="false" /> <conditions> <add input="{REQUEST_FILENAME}" matchType="IsFile" ignoreCase="false" negate="true" /> <add input="{REQUEST_FILENAME}" matchType="IsDirectory" ignoreCase="false" negate="true" /> <add input="{URL}" pattern="^/favicon.ico$" ignoreCase="false" negate="true" /> </conditions> <action type="Rewrite" url="index.php/{R:1}" appendQueryString="true" /> </rule> </rules> </rewrite> </system.webServer> </configuration>

Definitivamente su funcionamiento y también la parte restante de codeigniter funciona bien. También es importante establecer la configuración predeterminada de url etc. en routes.php y config.php. Si hay alguna otra ayuda escribe tu comentario.


Para su archivo de configuración, pruebe este artículo . Parece que tu problema está en tu línea de acción.

<action type="Rewrite" url="index.php?{R:1}" appendQueryString="true" />

Cambiar eso a:

<action type="Rewrite" url="index.php/{R:1}" appendQueryString="true" />

El signo de interrogación está causando tu problema. Además, su línea de coincidencia podría cambiarse a:

<match url="^(.*)$" ignoreCase="false" />

Eso es un poco más específico y podría evitar algunos dolores de cabeza más adelante.