301 путь перенаправления в web.config - PullRequest
0 голосов
/ 13 ноября 2018

Я пытаюсь заставить веб-редирект работать на моем WordPress-сайте, но ничего не происходит с URL-адресом редиректа.

Сайт WordPress и имеет существующий файл web.config, который выглядит следующим образом:

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
  <system.webServer>
    <rewrite>
      <rules>
            <rule name="WordPress" patternSyntax="Wildcard">
                <match url="*"/>
                    <conditions>
                        <add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true"/>
                        <add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true"/>
                    </conditions>
                <action type="Rewrite" url="index.php"/>
            </rule>
    </rules>
    </rewrite>
    <staticContent>
            <mimeMap fileExtension=".json" mimeType="application/json" />
     </staticContent>
  </system.webServer>
</configuration>

Я хочу, чтобы URL перенаправил FROM / path / to / old TO /path / to / new и добавили следующее после первого правила:

<rule name="Redirect" stopProcessing="true">
  <match url="^path/to/new" />
  <action type="Redirect" url="http:/www.site.com/path/to/new" redirectType="Found"/>
</rule>

Таким образом, полный код выглядит следующим образом:

   <?xml version="1.0" encoding="UTF-8"?>
    <configuration>
      <system.webServer>
        <rewrite>
          <rules>
                <rule name="WordPress" patternSyntax="Wildcard">
                    <match url="*"/>
                        <conditions>
                            <add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true"/>
                            <add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true"/>
                        </conditions>
                    <action type="Rewrite" url="index.php"/>
                </rule>
               <rule name="Redirect" stopProcessing="true">
                 <match url="^path/to/new" />
                 <action type="Redirect" url="http:/www.site.com/path/to/new" redirectType="Found"/>
               </rule>
        </rules>
        </rewrite>
        <staticContent>
                <mimeMap fileExtension=".json" mimeType="application/json" />
         </staticContent>
      </system.webServer>
    </configuration>

Я новичок в сети.Конфиг, но раньше использовали .htaccess.Немного непонятно, почему это не работает - на сайте ничего не происходит, когда я ввожу URL, который должен быть перенаправлен.

Ответы [ 2 ]

0 голосов
/ 13 ноября 2018

Согласно документации IIS по адресу https://docs.microsoft.com/en-us/iis/configuration/system.webserver/httpredirect/

это выглядит так же просто, как положить

 <httpRedirect enabled="true" destination="http:/www.site.com/path/to/new" />

в корень <system.webServer>, возможно, даже до мода перезаписи,Можете ли вы попробовать и дайте нам знать, если это работает для вас.

0 голосов
/ 13 ноября 2018

Насколько я помню, правила располагаются по приоритетам в соответствии с их порядком, то есть правило подстановочных знаков обрабатывает все запросы перед определенным правилом, а затем запросы не соответствуют шаблону.

Попробуйте разместить Перенаправьте правило до WordPress и удалите атрибут stopProcessing .

Надеюсь, это поможет!

...