Скрыть расширение PHP на сервере под управлением IIS 7 - PullRequest
0 голосов
/ 09 августа 2011

Я перевожу веб-приложение php с Linux на IIS 7. Что мне нужно сделать, это скрыть все, что говорит php, поэтому расширение url и ссылки в первую очередь.Я не думаю, что есть какие-то другие вещи, которые нужно скрывать, потому что они уже не отображаются.Есть предложения?

Ответы [ 5 ]

2 голосов
/ 09 августа 2011

В IIS 7 используйте собственный модуль перезаписи URL IIS.ISAPI_Rewrite - ваша лучшая альтернатива при развертывании на IIS 6 или более ранней версии.

Модуль перезаписи URL также может импортировать большинство правил mod_rewrite из .htaccess, если это также помогает.

Начните здесь http://iis.net/urlrewrite

2 голосов
/ 09 августа 2011

ISAPI_Rewrite - хорошая альтернатива mod_rewrite в Apache;мы использовали его в ряде проектов, развернутых в Windows + IIS.Синтаксис такой же, как у mod_rewrite, и он поддерживает все функции, которые мне когда-либо приходилось использовать в Apache mod_rewrite.

Есть бесплатная версия, которую вы можете использовать, которая применяет правила ко всем сайтам на сервере;если вы креативны, вы можете использовать RewriteCond, чтобы ограничить их определенными доменами, привязанными к сайтам.Платная версия также стоит стоимости, если она в вашем бюджете.

http://www.helicontech.com/isapi_rewrite/

2 голосов
/ 09 августа 2011

Следующая лучшая вещь для нативного Apache mod_rewrite, вероятно, this

Вот дополнительная информация о Microsoft Mod Rewrite 2.0:

http://learn.iis.net/page.aspx/460/using-the-url-rewrite-module/

1 голос
/ 10 ноября 2015

Чтобы сделать это на моем сервере, мне нужно было сначала: установить модуль перезаписи URL http://www.iis.net/downloads/microsoft/url-rewrite

А затем мне пришлось добавить файл web.config с этим XML (это работает для удаления .php, если добавлено, а также добавление .php незаметно для URL):

    <?xml version="1.0" encoding="UTF-8"?>
<configuration>
    <system.webServer>
        <rewrite>
            <rules>
                <rule name="Redirect .php extension" stopProcessing="false">
                    <match url="^(.*).php$" ignoreCase="true" />
                    <conditions logicalGrouping="MatchAny">
                        <add input="{URL}" pattern="(.*).php$" ignoreCase="false" />
                    </conditions>
                    <action type="Redirect" url="{R:1}" redirectType="Permanent" />
                </rule>
                <rule name="hide .php extension" stopProcessing="true">
                    <match url="^(.*)$" ignoreCase="true" />
                    <conditions>
                        <add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" />
                        <add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" />
                        <add input="{REQUEST_FILENAME}.php" matchType="IsFile" />
                    </conditions>
                    <action type="Rewrite" url="{R:0}.php" />
                </rule>
            </rules>
        </rewrite>
    </system.webServer>
</configuration>
1 голос
/ 09 августа 2011

Посмотрите на параметр expose_php в php.ini, а также на предложенный mod_rewrite.

...