Ich habe ein symfony2-Projekt auf einem Linux-Server entwickelt und habe es (leider!) Aus Gründen außerhalb meiner Kontrolle auf einen Windows-Server migriert. Dies funktioniert alles außer dem URL-Rewriting. Ich habe versucht, das IIS URL Rewrite Module zu verwenden, aber es scheiterte bei der Konvertierung der meisten Regeln (und ich habe dummerweise keine Liste davon gespeichert, bei denen es scheiterte).Wie htaccess-Regeln in web.config für IIS7/Symfony konvertiert werden?
Es funktioniert meistens gut, aber die app.php ist immer noch am Anfang aller URLs vorhanden, die es nicht sein sollte. Also die URLs sind domain.com/app.php/correct/path, wenn sie domain.com/correct/path sein sollten
Leider verwende ich selten Windows-Server und bin nicht gut in der Web.config-Syntax, so wenn jemand könnte vorschlagen, was fehlt, um die app.php von Anfang an alle URLs auf dem Windows-Server zu entfernen, dann wäre sehr dankbar!
Die ursprüngliche .htaccess-Datei ist:
DirectoryIndex app.php
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{REQUEST_URI}::$1 ^(/.+)/(.*)::\2$
RewriteRule ^(.*) - [E=BASE:%1]
RewriteCond %{ENV:REDIRECT_STATUS} ^$
RewriteRule ^app\.php(/(.*)|$) %{ENV:BASE}/$2 [R=301,L]
RewriteCond %{REQUEST_FILENAME} -f
RewriteRule .? - [L]
RewriteRule .? %{ENV:BASE}/app.php [L]
</IfModule>
<IfModule !mod_rewrite.c>
<IfModule mod_alias.c>
RedirectMatch 302 ^/$ /app.php/
</IfModule>
</IfModule>
Die konvertierte Datei web.config ist zur Zeit:
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<system.webServer>
<rewrite>
<rules>
<rule name="Imported Rule 1" stopProcessing="true">
<match url=".?" ignoreCase="false" />
<conditions logicalGrouping="MatchAll">
<add input="{REQUEST_FILENAME}" matchType="IsFile" ignoreCase="false" />
</conditions>
<action type="None" />
</rule>
</rules>
</rewrite>
</system.webServer>
</configuration>
Vielen Dank!
Dave
Danke für die Antwort doug, sehr geschätzt, obwohl dies genau das ist, was ich auch getan habe, aber es hat nicht alle Regeln aus irgendeinem Grund konvertiert. Wäre es möglich, dass Sie die resultierende web.config-Datei in Ihrer Antwort veröffentlichen, damit ich die spezifischen Regeln sehen kann, wäre es sehr hilfreich! Danke :) – deshg
Habe meinen Beitrag mit mehr Details bearbeitet. – Doug
Du bist eine Legende, danke Doug, die es gelöst hat.Jetzt, wo ich es ansehe, sind die fehlenden Elemente ziemlich offensichtlich, danke, dass sie mich aufgeklärt haben! – deshg