Redirection en interrogeant la valeur de la firebase database comme les URL stackoverflow.com

Donc, j’utilise le code htaccess suivant pour redirect les URL vers des URL à l’apparence propre, mais, maintenant, je dois avoir les URL d’origine pour redirect vers les nouvelles URL propres.

Exemple

URL d’origine:

example.com/search/store_info.php?store=113&dentist=Dr.%20John%20Doe 

URL propre:

 example.com/search/113/dr-john-doe 

Ce dont j’ai besoin est l’ URLORIGINAL ” pour redirect vers “l’ URL CLEAN “. La raison pour laquelle j’ai besoin de cela est que les deux URL apparaissent dans les recherches Google.

Je veux seulement que l’URL propre apparaisse et à chaque fois que l’URL d’origine est utilisée, elle devrait automatiquement être redirigée vers l’URL propre. Il ne le fait pas actuellement.

Voici mon fichier htaccess.

 ErrorDocument 404 default  Options -MultiViews RewriteEngine On RewriteBase /search/ RewriteCond %{QUERY_STRING} . RewriteCond %{THE_REQUEST} /store_info\.php\?store=([a-z0-9]+)&dentist=([^\s&]+) [NC] RewriteRule ^ %1/%2/? [L,NE,R=301] RewriteCond %{REQUEST_FILENAME} -f [OR] RewriteCond %{REQUEST_FILENAME} -d [OR] RewriteCond %{REQUEST_URI} \.(?:jpe?g|gif|bmp|png|ico|tiff|css|js)$ [NC] RewriteRule ^ - [L] RewriteRule ^([a-z0-9]+)/([^\s.]*)[.\s]+(.*)$ $1/$2-$3 [NC,DPI,E=DONE:1] RewriteCond %{ENV:DONE} =1 RewriteRule ^([0-9a-z]+)/([^\s.]+)$ $1/$2 [R=301,NE,L] RewriteRule ^([a-z0-9]+)/([a-z0-9-]+)/?$ store_info.php?store=$1&dentist=$2 [QSA,L,NC]  

J’ai lu sur RedirectMatch mais je ne sais pas où l’implémenter dans mon fichier htaccess.

Dans votre store_info.php code est le suivant:

 / page header ('HTTP/1.1 301 Moved Permanently'); header('Location: /' . $store . '/' . $dentistFromDB); exit; } // rest of the PHP code should come now ?> 

Vous n’avez plus besoin d’encombrer votre fichier htaccess avec des règles / directives arbitraires. L’ensemble actuel de règles, avec la correspondance %{THE_REQUEST} , et plus tard avec les conditions conditionnelles %{ENV=DONE} sont %{THE_REQUEST} suffisants.

Attendez quelques jours pour que Google explore à nouveau vos pages et les anciennes URL vides disparaissent. Vous pouvez également rechercher dans Google Webmaster Tools pour voir si cela peut être déclenché manuellement.

PS: Vous pouvez supprimer le RewriteCond %{QUERY_STRING} . ligne de votre première règle.