如何使用web.config重写模块在地址栏中打印url?

时间:2017-11-18 22:24:48

标签: php mod-rewrite iis web-config

我目前正在将PHP用于我网站上的不同页面。每个页面都有一个' include'在顶部和底部包括页眉和页脚。目前我在下面尝试过的'漂亮的版画'地址栏中的网址,但页眉和页脚包含的内容未被识别,因此未加载css和js文件。我想保留我的href原样,但是当页面加载时,或者有一些sitesite.com/article.php?id=15,我希望它能显示somesite.com/文章/ 15。我在Windows服务器上,所以.htaccess文件是无关紧要的。我已经读过你可以反过来尝试,但我不熟悉web.config的xml属性。我读过的大多数文档都是关于.htaccess的。即使我明确地搜索有关web.config或IIS的参数。我的PC上有IIS管理器10,但它没有可用的url重写模块,并且可以从MS网站下载的url重写模块无法安装。 这是我尝试过的:

<configuration>
<system.webServer>
    <rewrite>
        <rules>
            <rule name="rule 1h">
                <match url="mprofile/([^/]*)\.php$" ignoreCase="true" />
                <action type="Rewrite" url="m_profile.php?id={R:1}" appendQueryString="true" />
            </rule>

        </rules>
    </rewrite>
</system.webServer>

问题在于,如果我在地址栏somesite.com/mprofile/15中输入,它会加载页面但无法加载css,js文件以及打开/关闭html文件&#39;包括&#39;页眉和页脚页面。我可以以原始形式输入网址,它可以很好地工作,但我想保持“漂亮的印刷品”。格式。

修改

我也试过这个,当我将它上传到我的服务器并尝试访问该页面时,它会给出一个错误,即该网址包含无效的{}表达式中的计数。

<configuration>
<system.webServer>
    <rewrite>
        <rules>
            <rule name="RewriteUserFriendlyURL1" stopProcessing="true">
                <match url="m_app_profile.php?id={R:1}" />
                <conditions>
                    <add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" />
                    <add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" />
                </conditions>
                <action type="Rewrite" url="^m_app_profile/([^/]+)/?$" />

            </rule>
        </rules>
    </rewrite>
</system.webServer>

0 个答案:

没有答案