.htaccess Régner 301 Redirection /? my_foo = bar dans / foo / bar /

J'ai essayé sans succès pendant plusieurs heures de créer (il me semble) Redirection simple 301 dans le fichier htaccess.

Mon URL ressemble à ceci:

www.example.com/?my_foo=bar

Et je veux qu'il 301 Redirigé à:

www.example.com/foo/bar/

J'ai lu beaucoup de manuels sur ce sujet et j'ai essayé des dizaines d'exemples de code. Rien n'a réussi.

Merci d'avance...

Pour clarifier, ma dernière tentative était la suivante:

RewriteCond %{QUERY_STRING} ^my_foo=(.*)$
RewriteRule ^(.*)$ [url=http://www.example.com/foo/]http://www.example.com/foo/[/url]$1/? [L,R=301]

Comme je le vois, j'ai créé une condition correspondant à la chaîne de requête

my_foo

également

n'importe quoi

.

Alors j'ai ajouté un lien redirect:

Chaque page

qui correspond à ce critère (c'est à dire,

^ (. *) $

) à

nouvelle adresse

.

J'ai également ajouté un point d'interrogation à la fin pour ne pas recevoir de fonction récursive, ajoutant de manière répétée la même chaîne de requête.

Cela ne fonctionne toujours pas.

Qu'est-ce que je fais mal?
Invité:

Emilie

Confirmation de:

Parce que vous recherchez des paramètres pour écraser, et non une règle de réécriture, vous devez utiliser% 1:

RewriteCond %{QUERY_STRING} ^my_foo=(.*)
RewriteRule .* [url=http://www.example.com/foo/%1/]http://www.example.com/foo/%1/[/url] [L,R=301]

une source :
https://wiki.apache.org/httpd/RewriteQueryString
En tout cas, comme mentionné précédemment, vous avez besoin d'une équipe.

AllowOverride All

Résoudre .htaccess

<directory var="" www=""></directory>
AllowOverride All


une source :
https://httpd.apache.org/docs/ ... .html
Au fait, si vous avez accès à la configuration du serveur, vous devez utiliser un bloc Directory:

Vous devez éviter complètement d'utiliser des fichiers .htaccess, Si vous avez accès au fichier de configuration du serveur principal httpd. Utilisation des fichiers .htaccess ralentit le travail de votre serveur http Apache. Toute directive que vous pouvez activer dans un fichier .htaccess, Mieux installer dans le bloc Directory, Comme il aura le même effet avec de meilleures performances.

Dominique

Confirmation de:

Je suppose que votre configuration apache non configuré pour utiliser

.htaccess

déposer. Vous devez l'installer au niveau mondial ou pour un catalogue spécifique, en ajoutant

AllowOverride All

option.

Des dossiers .htaccess vous permettent de modifier la configuration pour les répertoires individuels.

Pour l'activer par défaut pour DocumentRoot, Vous ajoutez un paramètre à un fichier vhost défaut. Vous pouvez également ajouter une option uniquement pour un répertoire spécifique de votre configuration d'hôte virtuelle.

Par exemple, dans ubuntu de apache 2.2:

/etc/apache2/sites-available/default

:

<directory var="" www=""></directory>
Options Indexes FollowSymLinks MultiViews
AllowOverride All
Order allow,deny
allow from all


Assurez-vous de lire (Votre option apache2 peut différer, c'est pour 2.2):
https://httpd.apache.org/docs/ ... .html
.

Pour répondre aux questions, connectez-vous ou registre