apache - habilitar - mod_rewrite php
Reescritura de URL sin cambiar la URL.htaccess (2)
Puede usar este código en su archivo DOCUMENT_ROOT/.htaccess
:
RewriteEngine On
RewriteBase /
# external redirect from actual URL to pretty one
RewriteCond %{THE_REQUEST} /s/+fr/transporter/transporterPublicProfile/.php/?profil=([^/s&]+) [NC]
RewriteRule ^ fr/profil-des-transporteurs/%1? [R=302,L,NE]
# internal forward from pretty URL to actual one
RewriteRule ^fr/profil-des-transporteurs/([^/.]+)/?$ fr/transporter/transporterPublicProfile.php?profile=$1 [L,QSA,NC]
Luego, para resolver los enlaces relativos utilizados para las rutas images / js / css, puede agregar esto en la sección <head>
del HTML de su página:
<base href="/fr/transporter/" />
Quiero reescribir mi URL
De:
https://example.com/fr/transporter/transporterPublicProfile.php?profil=1927
A:
https://example.com/fr/profil-des-transporteurs/1927
Cuando un usuario visita esta URL:
https://example.com/fr/transporter/transporterPublicProfile.php?profil=1927
Debería aparecer así:
https://example.com/fr/profil-des-transporteurs/1927
Y si un usuario visita esta URL:
https://example.com/fr/profil-des-transporteurs/1927
Debería permanecer tal como está.
Lo que he intentado hasta ahora es:
RewriteRule ^profil-des-transporteurs/(.*)$ /fr/transporter/profil.php?oid=$1 [L]
Cambia la URL como quiero, pero el problema es que los enlaces en esa página no funcionan correctamente. La página usa rutas relativas para las imágenes, etc. con una URL nueva, es decir:
https://example.com/fr/profil-des-transporteurs/
Puedes usar una etiqueta base en tu html, por lo que todas las rutas serán relativas a ella
<base href="https://example.com/fr/transporter/">