Verwenden Sie htaccess, um die URL zu einem app-spezifischen Deep-Link umzuleiten
Ich versuche Folgendes zu tun:
Benutzer besucht URL mit Abfrageparameter: http://www.example.com/?invite=1234
Ich möchte dann, dass sie tief in die App auf ihrem iOS-Gerät eingebunden sind, also gehen sie zu: app_name://1234
Irgendwelche Vorschläge, wie dies in meiner .htaccess
Datei erreicht werden kann?
Ich habe es versucht, aber es funktioniert nicht:
RewriteEngine On # Turn on the rewriting engine
RewriteRule ^invite/(.*)/$ app_name://$1 [NC,L]
Wenn RewriteRule
es nicht funktioniert, kann mir jemand einen Beispielcode RewriteCond
oder JavaScript senden , um das zu erreichen, was ich brauche?
Antworten
Ich bin mir nicht sicher, wie das mit dem iOS-Gerät funktionieren wird, aber trotzdem ...
RewriteRule ^invite/(.*)/$ app_name://$1 [NC,L]
Dies stimmt nicht mit der angegebenen URL überein. Dies würde mit einer angeforderten URL des Formulars übereinstimmen example.com/invite/1234/
. Sie stimmen jedoch auch mit allem überein - Ihre Beispiel-URL enthält nur Ziffern.
Das RewriteRule
Muster stimmt nur mit dem URL-Pfad überein. Sie müssen eine RewriteCond
Direktive verwenden, um mit der Abfragezeichenfolge übereinzustimmen. Um eine Übereinstimmung zu erzielen example.com/?invite=1234
(die einen leeren URL-Pfad hat), müssten Sie stattdessen Folgendes tun:
RewriteCond %{QUERY_STRING} ^invite=([^&]+)
RewriteRule ^$ app_name://%1 [R,L]
Die %1
Rückreferenz bezieht sich auf das zuletzt übereinstimmende CondPattern .
Ich habe den invite
Parameterwert auch auf mindestens 1 Zeichen beschränkt - oder möchten Sie wirklich leere Parameterwerte durchlassen? Wenn der Wert nur aus Ziffern bestehen kann, sollten Sie das Muster auf nur Ziffern beschränken. z.B. ^invite=(\d+)
.
Ich habe das R
Flag eingefügt - da dies eine externe Weiterleitung sein müsste -, wenn es überhaupt funktionieren soll.
Dies funktioniert jedoch möglicherweise überhaupt nicht, es sei denn, Apache kennt das app_name
Protokoll. Wenn dies nicht der Fall ist, wird es einfach als relative URL angezeigt und führt zu einer fehlerhaften Weiterleitung.