gesetzt, wenn die folgenden Einträge in meinem .htaccess
Datei mitUmgebungsvariable in .htaccess Rewrite-Regel ist nicht
RewriteEngine On
SetEnv rewritten 0
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([^/]+)(/|$) /#$1 [L,NE,R=302,E=rewritten:1]
Welche <url>/test/
-<url>/#test
umschreibt.
Das Ziel ist es, den "Test" -Teil in einer Umgebungsvariable zu belassen, also kann ich php verwenden, um die Facebook-Metatags zu ändern und den Anker zu einem Abschnitt auf meiner Ein-Seite-Seite zu scrollen. Für das obige Beispiel ist die rewritten
Variable immer 0
und wenn ich die SetEnv
Zeile entferne, wird die Variable überhaupt nicht gesetzt.
Ich habe gelesen, dass die Variable möglicherweise nicht nach einer Umleitung, die die 302
tun wird beibehalten wird. Gibt es einen anderen Weg, dies zu tun? Andere Lösungen sind willkommen - mein übergeordnetes Ziel ist es, einen Link zu einem bestimmten Teil meiner Anwendung zu setzen und die Metatags entsprechend diesem Abschnitt zu setzen.
Es gibt mehrere Fragen hier auf SO, wo Leute versuchen, eine URL mit dem Ankerteil, zu einer URL ohne es neu zu schreiben - das ist nicht meine Frage, da es nicht getan werden kann.
Danke.
Bearbeiten Das obige ist nicht möglich. Folgendes wurde zu .htaccess
hinzugefügt, die <url>/test
zu <url>/?test#test
umleiten. PHP kann dann prüfen, ob der Parameter test
gesetzt ist und Meta-Tags entsprechend ändern.
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([^/]+)(/|$) /?$1#$1 [L,NE,R=302]
Die Env-Variable kann nicht über eine externe Umleitung eingestellt werden, da die Env-Variable bei Änderung des Pfads ebenfalls verloren geht. Ich denke nicht, was Sie erreichen wollen, ist so möglich. – starkeen
@starkeen Sie haben Recht. Ich löste es, indem ich nach der Umleitung auch einen Parameter zur URL hinzufügte. '/test /' zeigt jetzt auf ' /? Test # test' –
Feller