w3school página pagina otra misma insertar imagenes imagen hipervinculos hipervinculo hacer enlaces enlace ejemplos dentro como apache .htaccess url mod-rewrite redirect

apache - página - CSS, JS e imágenes no se muestran con bonita URL



imagenes en html (4)

Cuando utiliza las URL relativas, el navegador creará dinámicamente una URL completa utilizando la URL del recurso que cargó. En otras palabras: usa la url tal como se muestra en la barra de direcciones. En su caso ( www.domain.com/subfolder/index.php/key ) intenta cargar cualquier url relativa relativa a www.domain.com/subfolder/index.php/ . Sin embargo, sus recursos no se encuentran allí.

Tienes dos opciones para resolver este problema:

  • Convierte tu URL relativa en url absoluta, al menos absoluta para la raíz del dominio. Algo como <img src="img/unicorn.png"> debería convertirse en <img src="/path/to/img/unicorn.png"> .

  • Agrega una base a tu elemento principal. Esta base se usará en lugar de la URL del recurso para calcular la URL completa. Debe agregar <base href="/"> a su elemento <head> . / se usará como la base de cualquier URL relativa.

Estoy tratando de reescribir la URL a través del archivo htaccess para que la siguiente URL

www.domain.com/subfolder/index.php?key

se puede acceder por:

www.domain.com/subfolder/index.php/key

la "clave" especificada determinará qué página incluir en el código PHP. Ya tengo el siguiente código htaccess, sin embargo, las imágenes CSS, JS y similares no se muestran cuando se utiliza la segunda URL (limpia). ¿Alguna idea sobre cuál podría ser el problema?

RewriteEngine On RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-l RewriteCond %{DOCUMENT_ROOT}/$1 -f RewriteRule ^[^/]+/([^.]+/.(?:js|css|jpe?g|png|gif))$ /$1 [L,R=301,NC] RewriteRule ^index.php/([a-zA-Z0-9/_]+)$ index.php?key=$1


¿Has probado la URL base? Esa es la mejor solución que he encontrado. Simplemente ponga uno en la cabeza y luego incluso puede darle una identificación y acceder a la URL con javascript.

<base id=''baseElement'' href="your path goes here"> <!--possibly generated with serverside code-->

Acceso con jquery

var base = $(''#baseElement'').attr(''href'');


Además, puedes intentar agregar esto a tu HTaccess:

RewriteBase /


¡En realidad hay una solución con .htaccess!

Asumiendo que su index.php está ubicado en /mysite/ y sus archivos de recursos están en /mysite/scripts/ , /mysite/images/ y /mysite/style/ like minas, podría ir así:

RewriteEngine on #first exclude those folders RewriteBase "/mysite/" RewriteRule ^(style|scripts|images)($|/) - [L] #then go with your rules (the [L] terminates the ruling) RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-l RewriteCond %{DOCUMENT_ROOT}/$1 -f RewriteRule ^[^/]+/([^.]+/.(?:js|css|jpe?g|png|gif))$ /$1 [L,R=301,NC] RewriteRule ^index.php/([a-zA-Z0-9/_]+)$ index.php?key=$1

Puede ver .htaccess mod_rewrite - cómo excluir el directorio de la regla de reescritura para algunas otras maneras