Question

Je veux juste obtenir une redirection rapide de htaccess. c'est-à-dire:

domain.com/subfolderGreen - > domain.com/index.php?folder=subfolderGreen

(notez que le sous-dossier Green existe réellement)

J'ai essayé mais je n'ai pas pu obtenir l'expression régulière nécessaire.

merci a.

ajouté:

Désolé, je souhaite que cela fonctionne pour tous les sous-dossiers, et pas seulement "subfolderGreen". J'utilise

RewriteRule ^ / ([^ /] +) /? $ /index.php?folder=$1 [L]

mais ça ne marche pas. des indices?

Était-ce utile?

La solution

Je pense que votre exemple provoquerait une boucle sans fin puisque /index.php correspond à ce que vous faites. Essayez ceci:

RewriteRule ^([A-Za-z0-9]+)/?$ /index.php?folder=$1 [L]

Si vous voulez que cela fonctionne pour tous les répertoires existants, cela fonctionnera probablement aussi.

RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^(.+)/?$ /index.php?folder=$1 [L]

Autres conseils

RewriteRule ([^/]+)$ index.php?folder=$1

Je pense que cela fera l'affaire.

RewriteRule présente des problèmes déroutants lorsqu’il est utilisé dans .htaccess, ce qui nécessite l’ajout d’un RewriteBase.

Quelles erreurs / problèmes voyez-vous? Si vous voulez être sûr de la façon dont il redirige, ajouter un [R] peut souvent aider au débogage.

Enfin ... le sous-dossierGreen existe-t-il vraiment ou pas? S'il existe, cela pourrait causer des problèmes.

Je crois que c'est:

RedirectMatch 301 domain.com/(.*) domain.com/index.php?folder=$1
RewriteEngine on
RewriteCond %{THE_REQUEST} ^[A-Z]+\ /(([^/\ ]+/)*)/+([^\ ]*)
RewriteRule ^ /%1%3 [L,R=301]
RewriteRule ^([^/]+)/?$ index.php?folder=$1 [L]

La ligne 2 traitera le cas si quelqu'un accède à website.com/mypage/////, la valeur par défaut sera donc website.com/mypage/ à la place (je pense)

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top