Почему мое правило перезаписи IIS 7 не работает? - PullRequest
0 голосов
/ 13 июня 2011

Я перенес блог Wordpress Mu под Linux в WP 3 под IIS 7, поэтому мне нужно перенаправить http://mydomain.com/blog/blahblah/ на http://mydomain.com/blahblah/

Я добавил в wordpress web.config

        <rule name="rewrite /blog/">
            <match url="^/blog/([_0-9a-z-]+)/" />
            <conditions>                
            </conditions>
            <action type="Rewrite" url="/{R:1}/" />
        </rule>

, чтобы 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>
        <rule name="rewrite /blog/">
            <match url="^/blog/([_0-9a-z-]+)/" />
            <conditions>                
            </conditions>
            <action type="Rewrite" url="/{R:1}/" />
        </rule>
      </rules>
    </rewrite>
  </system.webServer>
</configuration>

Wordpress продолжает работать, но / blog / не перенаправляется.Почему?

1 Ответ

3 голосов
/ 13 июня 2011

1) Лучше переместить это правило выше правила подстановочного знака

2) У вас был ведущий слеш ^/blog/... - он вам не нужен: ^blog/...

3) Поскольку никакие условия не использовались, я также удалил <conditions></conditions>

<rule name="rewrite /blog/">
    <match url="^blog/([_0-9a-zA-Z\-]+)/$"/>
    <action type="Rewrite" url="/{R:1}/"/>
</rule>

Выше приведено Правило перезаписи - вы видите тот же URL в браузере, но за ним выполняется по-разному.

Если вы хотите Redirect , используйте следующее:

<rule name="rewrite /blog/">
    <match url="^blog/([_0-9a-zA-Z\-]+)/$"/>
    <action type="Redirect" url="/{R:1}/" redirectType="Permanent" />
</rule>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...