URL RewriteRule .htaccess pour index.php les paramètres de la requête
Exemple d'URL:-
- www.domain.com/index.php?bob
- www.domain.com/index.php?jane
- www.domain.com/index.php?fred
Besoin de réécrire comme:-
- www.domain.com/bob
- www.domain.com/jane
- www.domain.com/fred
Ont essayé avec de nombreuses variations de maintenant, mais le plus proche que je peux obtenir à l'est:-
- www.domain.com/?bob
- www.domain.com/?jane
- www.domain.com/?fred
Ci-dessous .htaccess réalise ce...
RewriteRule ^(.*)$ index.php?$1 [L,QSA]
RewriteCond %{THE_REQUEST} ^[A-Z]{3,}\s(.*)/index\.php [NC]
RewriteRule ^ %1 [R=301,L]
Svp quelqu'un pourrait-il préciser ce que je dois modifier pour ben l' ? (point d'interrogation) dans l'URL?
Modifier
Viens de remarquer que depuis l'application de la réponse donnée par anubhava ci-dessous que robots.txt par exemple ne permet pas de résoudre à l' .fichier txt, mais est simplement l'affichage de la page d'accueil.
.htaccess ci-dessous:-
RewriteEngine On
RewriteBase /
RewriteCond %{THE_REQUEST} \s/+index\.php\?([^\s&]+) [NC]
RewriteRule ^ %1? [R=301,L]
RewriteRule ^sitemap.xml$ index.php?route=feed/google_sitemap [L]
RewriteRule ^googlebase.xml$ index.php?route=feed/google_base [L]
RewriteRule ^download/(.*) /index.php?route=error/not_found [L]
RewriteCond %{HTTP_HOST} !^www\.
RewriteRule ^(.*)$ http://www.%{HTTP_HOST}/$1 [R=301,L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
#pos1
RewriteRule ^([^/]+)/?$ index.php?$1 [L,QSA] <--
RewriteCond %{REQUEST_URI} !.*\.(ico|gif|jpg|jpeg|png|js|css)
RewriteRule ^([^?]*) index.php?_route_=$1 [L,QSA]
#pos2
Si j'ajoute <-- ligne dans pos1, l'robots.txt URL renvoie une erreur 404 page not found.
Si j'ajoute <-- ligne dans pos2=, l'robots.txt l'URL est simplement l'affichage de la page d'accueil.
Edit2
En attendant, j'ai exclu robots.txt
de réécrit par adjonction, sous Rewrite Base /
:-
RewriteRule ^robots.txt - [L]
OriginalL'auteur zigojacko | 2014-02-18
Vous devez vous connecter pour publier un commentaire.
Vous pouvez utiliser ce code:
Tu es la bienvenue, content que ça a fonctionné.
J'ai remarqué un problème en fait avec l'URL n'est pas de résoudre les emplacements corrects depuis l'application de votre réponse. J'ai édité ma question inclure un exemple - je pense que c'est dû à l'ordre incorrect dans
.htaccess
? Merci.ok donnez-moi quelques minutes, je vais tester votre code en local.
Vérifié notre code. Vous n'avez pas de règles contradictoires 1:
index.php?_route_=$1
et 2:index.php?$1
un seul de ces réécritures fonctionne. OuiRewriteRule ^robots.txt - [L]
ne manquera pas de travail.OriginalL'auteur anubhava
Vous pouvez également utiliser cette:
OriginalL'auteur Leye Odumuyiwa