2016-07-01 15 views
0

Ich hatte eine .htaccess überschreiben mit mod_rewrite und ich verwendet einen Online-Konverter, um es in IIS web.config zu konvertieren.IIS URL Rewrite Problem mit web.config

Hier ist eine Zeile in meinem web.config:

<rule name="rule 1G"> 
    <match url="cat_([0-9]+)(\.[a-z]{3,4})?(.*)$ index.php?_a=viewCat&catId=$1&%1" ignoreCase="true" /> 
    <action type="Rewrite" url="/" /> 
</rule> 

Mit, dass ich Fehler:

Configuration file is not well-formed XML 

Dieser Fehler wird immer oben in der zweiten Zeile ausgelöst.

Wer weiß, was ich falsch mache?

Unten ist ein Teil der ursprünglichen .htaccess-Datei:

AddType x-mapp-php5 .php 

## Activate the mod_rewrite Engine 

RewriteEngine On 
RewriteBase/

RewriteCond %{QUERY_STRING} (.*)$ 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteRule cat_([0-9]+)(\.[a-z]{3,4})?(.*)$ index.php?_a=viewCat&catId=$1&%1 [NC] 

Antwort

0

Sie müssen sich mit &amp; Et-Zeichen in Attributwerten entkommen:

<rule name="rule 1G"> 
    <match url="cat_([0-9]+)(\.[a-z]{3,4})?(.*)$ index.php?_a=viewCat&amp;catId=$1&amp;%1" ignoreCase="true" /> 
    <action type="Rewrite" url="/" /> 
</rule> 

NB. Sie können http://xmlvalidation.com/ hilfreich zum Debuggen von XML-Dateien finden.

UPDATE

Die obige Änderung wird nur XML Gültigkeit Fehler beheben, aber nicht die Rewrite-Regel selbst. Das Element match sollte nur die Übereinstimmungsbedingung (d. H. Den ersten Teil Ihrer Apache RewriteRule) beschreiben, während die Ziel-URL im Element action beschrieben werden sollte.

Die Rückwärtsreferenzen haben auch eine andere Syntax.

Ich würde vorschlagen, die folgende Regel Definition versuchen, (leider kann ich mich nicht auf die Hand für den Mangel an IIS überprüfen):

<rule name="rule 1G"> 
    <match url="cat_([0-9]+)(\.[a-z]{3,4})?(.*)$" ignoreCase="true" /> 
    <action type="Rewrite" url="index.php?_a=viewCat&amp;catId={R:1}&amp;" appendQueryString="true" /> 
</rule> 
+0

ich diese hinzugefügt haben, aber immer noch die gleichen Fehler – Eclipse

+0

Sie behoben haben beide kaufmännische Zeichen in deiner URL = "..."? Es gibt zwei von ihnen. Haben Sie das Online-XML-Validierungstool für Ihre geänderte Datei getestet? Es wird auf die genaue Position eines Fehlers hingewiesen. –