Joomla Plesk IIS 重寫偽靜態URL Rewrite規則實現偽靜態

12 月 25, 2019 | | 0 條留言

選擇使用伺服器的重寫(rewrite)引擎,抓取符合特定情況的網址,然後重寫它們如同直接連結。目前可以支援IIS 7和Apache網站伺服器。

Joomla

Joomla

只針對Apache使用者!
在啟用之前,重新命名htaccess.txt為.htaccess檔名。

只針對IIS 7使用者!
在啟用之前,重新命名web.config.txt為web.config檔名,以及安裝IIS URL Rewrite模組。

Joomla Plesk IIS 7.5重寫偽靜態規則實現偽靜態

若你的Joomla目錄下提供的,重新命名web.config.txt為web.config檔名,還是無法使用URL Rewrite,請安裝的目錄下編輯web.config,如果沒有該文件請新建,內容如下:

<?xml version=1.0 encoding=UTF-8??>
<configuration>
    <system.webserver>
        <rewrite>
            <rules>
                <clear></clear>
                <rule blocking="" exploit="" name="Common" stopprocessing="true">
                    <match url="^(.*)$"></match>
                    <conditions logicalgrouping="MatchAny">
                        <add input="{QUERY_STRING}" pattern="mosConfig_[a-zA-Z_]{1,21}(=|\%3D)"></add>
                        <add input="{QUERY_STRING}" pattern="base64_encode.*(.*)"></add>
                        <add input="{QUERY_STRING}" pattern="(<|%3C).*script.*(">|%3E) />
                        <add input="{QUERY_STRING}" pattern="GLOBALS(=|[|\%[0-9A-Z]{0,2})"></add>
                        <add input="{QUERY_STRING}" pattern="_REQUEST(=|[|\%[0-9A-Z]{0,2})"></add>
                    </add></conditions>
                    <action appendquerystring="false" redirecttype="SeeOther" type="Redirect" url="index.php"></action>
                </rule>
                <rule name="Joomla" rule="" search="" stopprocessing="true">
                    <match ignorecase="true" url="(.*)"></match>
                    <conditions logicalgrouping="MatchAll">
                        <add ignorecase="true" input="{URL}" pattern="^/search.php"></add>
                    </conditions>
                    <action type="Rewrite" url="/index.php?option=com_content&view=article&id=4"></action>
                </rule>
                <rule main="" name="Joomla" rewrite="" rule="" stopprocessing="true">
                    <match ignorecase="true" url="(.*)"></match>
                    <conditions logicalgrouping="MatchAll">
                        <add input="{URL}" pattern="(/[^.]*|.(php|html?|feed|pdf|raw))$"></add>
                        <add input="{REQUEST_FILENAME}" matchtype="IsFile" negate="true"></add>
                        <add input="{REQUEST_FILENAME}" matchtype="IsDirectory" negate="true"></add>
                    </conditions>
                    <action type="Rewrite" url="index.php/"></action>
                </rule>
            </rules>
        </rewrite>
        <caching>
            <profiles>
                <add extension=".php" kernelcachepolicy="DisableCache" policy="DisableCache"></add>
            </profiles>
        </caching>
    </system.webserver>
</configuration>

相關連結:

Translate .htaccess Content to IIS web.config
Enabling Search Engine Friendly (SEF) URLs on IIS/IIS7