Frage

Ich hoffe nicht-IIS Leute mir auf diesem helfen kann, obwohl das Problem, das ich habe, ist ein IIS6 Server läuft ISAPI_Rewriter Basis.

Die Situation ist, dass ich bin mit Wordpress auf IIS6, ISAPI_Rewriter verwendet wird als Ersatz für mod_rewrite zu handeln und ordnungsgemäß funktioniert. Mein Problem ist, dass, wenn ich es für Wordpress meine URLs neu zu schreiben (also ich die index.php Dateiname nicht in es brauchen) es zeigt ein 404. Nach langem Suchen habe ich das Problem gefunden wurde, weil ein Teil des ASP.net ( oder so ähnlich) wurde hinzugefügt eurl.axd / [zufällige Zeichenfolge] bis zum Ende der URLs und so diese wurde in die Wordpress-Anfrage zugeführt und es zu brechen. Ich habe die Wordpress-Vorlage die angeforderte URL ausgeben und es sieht so etwas wie folgt aus:

http://www.example.com/index.php /about/eurl.axd/b552863f2d5e9841b5d8b79b44ac02e8/

Ich glaube, dies ist wegen der Hackordnung der verschiedenen Dinge in der IIS-System und der Täter erforderlich ist ein weiterer Teil des Projekts zu laufen. Ich würde es vorziehen, ziemlich bis die URLs mit ISAPI_Rewriter zu halten, so würde Ich mag, dies wissen:

Gibt es eine Möglichkeit, um mod_rewrite entfernen eurl.axd des Erhaltens / [string], bevor es auf das System füttern?

Meine .htaccess-Datei erscheint derzeit als solche:

RewriteEngine on
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d

# The following line excludes folders from rewriting
RewriteCond %{REQUEST_URI} !^/folder-name/

RewriteRule ^/(.*)$ /$1 [NC,L]

Vielen Dank für all die Hilfe, ist es immer sehr geschätzt.


EDIT: Habe angepasst meine .htaccess auf Anregungen und es scheint, von den kurzen Tests gut arbeiten ich durchgeführt habe. Haben gepostet es unten.

RewriteEngine on
RewriteBase /

# This is used to strip ASP.net eurl.axd bits
# from the URL so wordpress can use permalinks


# For the root
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} !^/wp-admin/
RewriteRule ^eurl\.axd/[0-9a-f]+/$ index.php [NC,L]


# For internal permalinks
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} !^/wp-admin/
RewriteRule ^(.*)/eurl\.axd/[0-9a-f]+/$ index.php/$1 [NC,L]
War es hilfreich?

Lösung

So etwas in der Nähe der Spitze der Liste der möglichen Schreibvorgänge funktionieren soll:

RewriteRule ^(.*)/eurl\.axd/[0-9a-f]+/$ /$1

Andere Tipps

Ich verwende die folgende regex als ersten Regel mit Ionics Isapi Rewriter für Web-Sites laufen auf ASP.NET 4 auf IIS 6 , um die Probleme, die durch die brechen Änderung mit ASP.NET 4 eingeführt:

RewriteRule ^(.*)/eurl.axd/[a-f0-9]{32}(.*)$ $1$2

Dies läßt mich wieder erweiterungs Urls verwenden.

Beachten Sie, dass die zweite Gruppe erfasst die Abfragezeichenfolgeflag falls vorhanden und restitutes es auf die neu geschrieben url.

Und ja, es ist ein Feature, kein Bug .

Ich lief in ein ähnliches Problem mit v4.0 ASP.Net Erweiterung weniger URL-Funktion auf II6 und gefunden Provider eine Lösung durch ISAPI Rewrite-Modul, wird das nicht erfordert es ausschalten. Theissue und die Lösung, wie wir erfahren es hier dokumentiert ist http://www.vanadiumtech.com/OurBlog/post/2011/08/12/Cause-of-eurlaxd.aspx

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