2017-10-08 6 views
0

Je veux créer une règle dynamique (peut-être du .htaccess) pour rediriger la page de:.htaccess d'URL de la page dynamique statique avec des variables

https://www.example.com/dir/search?q=stack+overflow 

à

https://www.example.com/dir/stack-overflow 

Je suis conscient que je dois avoir un dossier /dir

J'ai essayé avec ce

Options +FollowSymLinks 
RewriteEngine on 
RewriteRule (.*)\. search?q=$1 

Ne fonctionne pas.

Répondre

1

Je suppose que vous voulez dire une redirection 301 /dir/search?q=stack-overflow-/dir/stack-overflow, qui est si un utilisateur entre https://www.example.com/dir/search?q=stack-overflow l'URL du navigateur change pour https://www.example.com/dir/stack-overflow. La question est, est /dir/stack-overflow un vrai dossier ou un fichier? Je ne pense pas et donc vous devez réécrire /dir/stack-overflow retour à /dir/search?q=stack-overflow.

Options +FollowSymLinks 
RewriteEngine On 

RewriteCond %{ENV:REDIRECT_STATUS} ^$ 
RewriteCond %{QUERY_STRING} ^q=([^&]*) 
RewriteRule ^/?dir/search/?$ /dir/%1 [R=301,L] 

RewriteCond %{REQUEST_URI} !^/?dir/search/?$ [NC] 
RewriteRule ^/?dir/([^/?]+)/?$ /dir/search?q=$1 [L] 

Je ne veux pas réécrire en arrière que de supprimer les deux dernières lignes.