2016-07-01 4 views
0

У меня был переписан .htaccess с помощью mod_rewrite, и я использовал онлайн-конвертер для преобразования его в web.config IIS.Проблема с переписыванием URL-адреса IIS с помощью web.config

Вот одна строка в моей 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> 

При том, что я получаю ошибку:

Configuration file is not well-formed XML 

Эта ошибка становится срабатывает во второй строке выше.

Кто-нибудь знает, что я делаю неправильно?

Ниже часть исходного файла Htaccess:

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] 

ответ

0

Вам нужно бежать амперсанд в значениях атрибутов с &amp;:

<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. Вы можете найти http://xmlvalidation.com/ полезным для отладки XML-файлов.

UPDATE

Изменение выше будет только исправить ошибку действия XML, но не само правило перезаписи. Элемент match должен описывать условие соответствия (т. Е. Первую часть вашего Apache RewriteRule), в то время как целевой URL должен быть описан в элементе action.

Обратные ссылки также имеют различный синтаксис.

Я бы предложил попробовать следующее определение правила (к сожалению, я не могу проверить себя за отсутствие IIS на руках):

<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

Я добавил, что, но все еще получаю ту же ошибку – Eclipse

+0

Вы неподвижная оба амперсанда в вашем url = "..."? Их два. Вы пытались использовать инструмент проверки XML в Интернете для вашего измененного файла? Он укажет точное местоположение ошибки. –

Смежные вопросы