Как перенаправить myforum.com/index.php навсегда на myforum.com - PullRequest
0 голосов
/ 15 февраля 2012

Я использую php форум MYBB на Windows Server 2008 на IIS 7.5

Я хочу перенаправить index.php на основной URL

Как я могу это сделать?

Пример

http://forum.monstermmorpg.com/index.php

будет перенаправлен на

http://forum.monstermmorpg.com

Как я могу это сделать? Спасибо.

Правила перезаписи, которые я использую

    <?xml version="1.0" encoding="UTF-8"?>
<configuration>
    <system.webServer>
        <rewrite>
            <rules>
                <rule name="Imported Rule 1" stopProcessing="true">
                    <match url="^([^&amp;]*)&amp;(.*)$" ignoreCase="false" />
                    <action type="Redirect" url="http://forum.monstermmorpg.com/{R:1}?{R:2}" appendQueryString="true" redirectType="Permanent" />
                </rule>
                <rule name="Imported Rule 2" stopProcessing="true">
                    <match url="^sitemap\-([^./]+)\.xml$" />
                    <action type="Rewrite" url="misc.php?google_seo_sitemap={R:1}" appendQueryString="true" />
                </rule>
                <rule name="Imported Rule 3" stopProcessing="true">
                    <match url="^Forum\-([^./]+)$" />
                    <action type="Rewrite" url="forumdisplay.php?google_seo_forum={R:1}" appendQueryString="true" />
                </rule>
                <rule name="Imported Rule 4" stopProcessing="true">
                    <match url="^Thread\-([^./]+)$" />
                    <action type="Rewrite" url="showthread.php?google_seo_thread={R:1}" appendQueryString="true" />
                </rule>
                <rule name="Imported Rule 5" stopProcessing="true">
                    <match url="^Announcement\-([^./]+)$" />
                    <action type="Rewrite" url="announcements.php?google_seo_announcement={R:1}" appendQueryString="true" />
                </rule>
                <rule name="Imported Rule 6" stopProcessing="true">
                    <match url="^User\-([^./]+)$" />
                    <action type="Rewrite" url="member.php?action=profile&amp;google_seo_user={R:1}" appendQueryString="true" />
                </rule>
                <rule name="Imported Rule 7" stopProcessing="true">
                    <match url="^Calendar\-([^./]+)$" />
                    <action type="Rewrite" url="calendar.php?google_seo_calendar={R:1}" appendQueryString="true" />
                </rule>
                <rule name="Imported Rule 8" stopProcessing="true">
                    <match url="^Event\-([^./]+)$" />
                    <action type="Rewrite" url="calendar.php?action=event&amp;google_seo_event={R:1}" appendQueryString="true" />
                </rule>
            </rules>
        </rewrite>
    </system.webServer>
</configuration>

Ответы [ 2 ]

2 голосов
/ 15 февраля 2012

Если вы используете файл web.config и у вас установлен модуль перезаписи IIS, это правило должно работать

<?xml version="1.0" encoding="UTF-8"?>
<configuration>
  <system.webServer>
     <modules runAllManagedModulesForAllRequests="true" />
        <rewrite>
            <rules>
                <rule name="CanonicalHostNameRule" stopProcessing="true">
                  <match url="^(\w*/)?index\.php" />
            <conditions>
            <add input="{HTTP_HOST}" pattern="forum\.monstermmorpg\.com$" />
            </conditions>
                   <action type="Redirect" url="http://forum.monstermmorpg.com/{R:1}" />
                </rule>
            </rules>
        </rewrite>
  </system.webServer>
</configuration>
0 голосов
/ 15 февраля 2012

На index.php напишите примерно так:

//> header 302
if ($_SERVER['REQUEST_URI']=='/index.php')
 header('Location: /');

//> header 301
header( 'HTTP/1.1 301 Moved Permanently' );
header( 'Location: /' );
...