Frage

Ich versuche IIS Isapi Rewrite zu verwenden, das zu tun folgenden ...

Ich brauche SEO-freundliche URLs (leise) sein umgewandelt zurück zur Anwendung freundlichen URLs wie folgt:

RewriteRule ^/seo-friendly-url/ /test/index.cfm [I,L]

Einfach genug.

Aber ich brauche auch URLs bereits in Suchmaschinen indiziert (zum Beispiel) 301 auf die SEO-freundliche Version umgeleitet werden. Wie so:

RewriteRule ^/test/index.cfm    /seo-friendly-url/ [I,R=301]

Jeder dieser funktioniert gut isoliert. Aber wenn ich beide in meiner ini-Datei habe ich am Ende mit / SEO-friendly-url / zeige in meiner Browser-Adressleiste, aber ich bin das Servieren ein 404. (Ja, /test/index.cfm existiert auf jeden Fall!)

Ich weiß, dass es wie eine zirkuläre Referenz aussieht, aber die erste Regel umschreibt nur die URL zwischen IIS und der Anwendung - es gibt keine Umleitung, so Ich schlage Isapi nicht ein zweites Mal neu schreiben. Oder bin ich falsch über das?

Ich habe auf Isapi Rewrite aktiviert Protokollierung und ich sehe wie folgt vor:

HttpFilterProc SF_NOTIFY_PREPROC_HEADERS
DoRewrites
New Url: '/seo-friendly-url/'
ApplyRules (depth=0)
Rule 1 : 1
Result (length 15): /test/index.cfm
ApplyRules (depth=1)
Rule 1 : -1
Rule 2 : 1
Result (length 18): /seo-friendly-url/
ApplyRules: returning 301
ApplyRules: returning 1
Rewrite Url to: '/seo-friendly-url/'

Wer hat irgendwelche Ideen?

War es hilfreich?

Lösung 2

Durch einige Versuch und Irrtum habe ich mit einer Lösung für diese kommen.

Geben Sie, dass die Umleitung Spiel am Ende der Schnur ist das $ -Zeichen mit:

RewriteRule ^/test/index.cfm$    /seo-friendly-url/ [I,R=301]

Machen Sie die URL neu geschrieben trivialer Weise unterscheidet sich von der Umleitung Matchstring - in diesem Fall das Hinzufügen eines unnötigen „?“:

RewriteRule ^/seo-friendly-url/ /test/index.cfm? [I,L]

Andere Tipps

Sie haben zwei verschiedene umschreibt hier und es sollte funktionieren, wenn man es richtig

  1. Die erste ist nie vom Client User-Agenten gesehen. Er fordert / seo-freundlich und man es intern neu zu schreiben und darauf zu reagieren

  2. Die zweite ist nicht wirklich neu geschrieben, sondern eine Umleitung. Sie, dass senden an den Client zurück und es wieder Anfragen der / seo-freundlich - ich glaube, du [R = 301, L] verwenden müssen, zu sagen, dass dies das Ende der Linie ist - einfach zurückgeben (L tut das)

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top