Utilizza htaccess per reindirizzare l'URL al link diretto specifico dell'app
Sto cercando di fare quanto segue:
L'utente visita l'URL con il parametro di ricerca: http://www.example.com/?invite=1234
Voglio quindi che siano collegati in profondità all'app sul loro dispositivo iOS, quindi vadano a: app_name://1234
Qualche suggerimento su come eseguire questa operazione nel mio .htaccessfile?
Ho provato questo ma non funziona:
RewriteEngine On # Turn on the rewriting engine
RewriteRule ^invite/(.*)/$ app_name://$1 [NC,L]
Se RewriteRulenon funziona, qualcuno può inviarmi un codice di esempio RewriteCondo JavaScript per ottenere ciò di cui ho bisogno?
Risposte
Non sono sicuro di come funzionerà con il dispositivo iOS, ma comunque ...
RewriteRule ^invite/(.*)/$ app_name://$1 [NC,L]
Questo non corrisponde all'URL fornito. Ciò corrisponderebbe a un URL richiesto del modulo example.com/invite/1234/. Tuttavia, stai anche facendo corrispondere qualsiasi cosa : il tuo URL di esempio contiene solo cifre.
Il RewriteRule modello corrisponde solo al percorso dell'URL, è necessario utilizzare una RewriteConddirettiva per far corrispondere la stringa della query. Quindi, per trovare una corrispondenza example.com/?invite=1234(che ha un percorso URL vuoto), dovresti invece fare qualcosa di simile:
RewriteCond %{QUERY_STRING} ^invite=([^&]+)
RewriteRule ^$ app_name://%1 [R,L]
Il %1backreference fa riferimento all'ultimo CondPattern abbinato .
Ho anche limitato il invitevalore del parametro ad almeno 1 carattere o vuoi davvero consentire i valori dei parametri vuoti? Se il valore può essere composto solo da cifre, è necessario limitare il modello a sole cifre. per esempio. ^invite=(\d+).
Ho incluso il Rflag, dal momento che dovrebbe essere un reindirizzamento esterno, se funzionerà.
Tuttavia, questo potrebbe non funzionare affatto a meno che Apache non sia a conoscenza del app_nameprotocollo. In caso contrario, verrà semplicemente visto come un URL relativo e risulterà in un reindirizzamento non corretto.