У меня есть веб-сайт, на котором я установил Gallery3.URL-адрес
http://techblog.lalsofttech.com/gallery/
Но когда я открываю «тестовый альбом», в URL-адресе появляется index.php
http://techblog.lalsofttech.com/gallery/index.php/test
Теперь я хочу удалить index.phpиз URL и хочу, чтобы URL выглядел следующим образом
http://techblog.lalsofttech.com/gallery/test
Поскольку мое общее серверное пространство представляет собой платформу Windows с IIS 7, я не могу использовать файл .htaccess.Поскольку на моем сервере установлен модуль Microsoft URL Rewrite, мне нужно написать правило перезаписи в файле web.config.
Это код для скрытия index.php в файле .htaccess
<IfModule mod_rewrite.c>
Options +FollowSymLinks
RewriteEngine On
RewriteBase /gallery
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?kohana_uri=$1 [QSA,PT,L]
RewriteRule ^$ index.php?kohana_uri=$1 [QSA,PT,L]
RewriteRule ^index.php/(.*) $1 [QSA,R,L]
</IfModule>
Я попытался преобразовать это, установив модуль перезаписи URL-адресов Microsoft на мой локальный хост.
За исключением «RewriteBase / gallery», все остальные коды преобразуются. «RewriteBase / gallery не преобразуется, поскольку он не поддерживается IIS», - это сообщение об ошибке, которое я получил.И это преобразованный код.
<rewrite>
<rules>
<rule name="Imported Rule 1" stopProcessing="true">
<match url="^(.*)$" ignoreCase="false" />
<conditions>
<add input="{REQUEST_FILENAME}" matchType="IsFile" ignoreCase="false" negate="true" />
<add input="{REQUEST_FILENAME}" matchType="IsDirectory" ignoreCase="false" negate="true" />
</conditions>
<action type="Rewrite" url="index.php?kohana_uri={R:1}" appendQueryString="true" />
</rule>
<rule name="Imported Rule 2" stopProcessing="true">
<match url="^$" ignoreCase="false" />
<action type="Rewrite" url="index.php?kohana_uri={R:1}" appendQueryString="true" />
</rule>
<rule name="Imported Rule 3" stopProcessing="true">
<match url="^index.php/(.*)" ignoreCase="false" />
<action type="Redirect" redirectType="Found" url="{R:1}" appendQueryString="true" />
</rule>
</rules>
</rewrite>
Но, похоже, этот код не работает, так как index.php все еще там.Модуль перезаписи URL-адреса ISS работает, поскольку другое правило «Принудительное использование канонического имени хоста», которое я добавил в файл web.config, работает правильно.
Это мой полный файл web.config.
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<system.webServer>
<directoryBrowse enabled="false" />
<rewrite>
<rules>
<rule name="Enforce canonical hostname" stopProcessing="true">
<match url="(.*)" />
<conditions>
<add input="{HTTP_HOST}" negate="true" pattern="^www\.moviega\.com$" />
</conditions>
<action type="Redirect" url="http://www.moviega.com/{R:1}" redirectType="Permanent" />
</rule>
<rule name="Imported Rule 1" stopProcessing="true">
<match url="^(.*)$" ignoreCase="false" />
<conditions>
<add input="{REQUEST_FILENAME}" matchType="IsFile" ignoreCase="false" negate="true" />
<add input="{REQUEST_FILENAME}" matchType="IsDirectory" ignoreCase="false" negate="true" />
</conditions>
<action type="Rewrite" url="index.php?kohana_uri={R:1}" appendQueryString="true" />
</rule>
<rule name="Imported Rule 2" stopProcessing="true">
<match url="^$" ignoreCase="false" />
<action type="Rewrite" url="index.php?kohana_uri={R:1}" appendQueryString="true" />
</rule>
<rule name="Imported Rule 3" stopProcessing="true">
<match url="^index.php/(.*)" ignoreCase="false" />
<action type="Redirect" redirectType="Found" url="{R:1}" appendQueryString="true" />
</rule>
</rules>
</rewrite>
</system.webServer>
</configuration>
Так в чем же проблема ??Что нужно сделать, чтобы удалить index.php из URL?Пожалуйста, помогите мне разобраться с этим.