Ho un sito web che è stato originariamente costruito utilizzando ASP classico. Circa un anno fa è stato riscritto in PHP. Ciò ha comportato la modifica delle estensioni di file e alcune pagine sono state spostate in nuove posizioni all'interno del sito Web. Naturalmente abbiamo effettuato 301 reindirizzamenti dai vecchi URL ai nuovi URL in modo che i loro utenti e motori di ricerca potessero trovare le loro nuove posizioni. Funziona benissimo.
Abbiamo anche creato loro uno strumento che consente al proprietario del sito di creare i propri piccoli URL che reindirizzeranno a una pagina con le variabili di monitoraggio della campagna di Google Analytics incluse nell'URL in modo che possano monitorare la campagna e vedere come si comporta.
Il problema che ho è che le regole di tracciamento della campagna sono in conflitto con i reindirizzamenti 301 e impediscono che i reindirizzamenti funzionino affatto.
Ecco il codice di monitoraggio della campagna:
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /tracking.php?$1 [R=301,L]
Come puoi vedere, controlla se esiste un file e se non lo fa reindirizza a uno script di monitoraggio (tracking.php) che quindi prende il codice di monitoraggio e reindirizza all'URL corretto con il codice della campagna di Google Analytics nella query corda.
Quel codice fa fallire regole come questa:
redirect 301 /about.asp /about.php
redirect 301 /capabilities.asp /capabilities.php
redirect 301 /capacitors.asp /capacitors.php
Ha senso che questo non funzioni insieme come dicono le regole di tracciamento, "se un file non viene trovato reindirizzare a tracking.php". Ciò di cui ho bisogno è che i reindirizzamenti 301 vengano eseguiti per primi, e se nessuno di essi corrisponde, quindi reindirizza allo script di monitoraggio. Posizionare le regole di tracciamento sotto i reindirizzamenti 301 non modifica i risultati.
Questo può essere fatto tramite .htaccess? O dovrò modificare lo script di tracciamento in modo che se una campagna non viene trovata, controlla se l'ID campagna è in realtà una vecchia pagina che deve essere reindirizzata e quindi reindirizzare 301 da lì?