如何显示自定义页面URL?

时间:2014-08-23 07:51:18

标签: iis-7 url-rewrite-module

让我用例子来解释:

每当有人在我的网站上开设帐户时,他/她也会创建一个商店ID,如MyHawaiiSpa。一旦生成商店ID,就无法更改。在这里,我假设此帐户的pkid为1.

现在,访问者点击主页上的MyHawaiiSpa商店链接,访问者将被发送到shop.php,其中将显示所有项目属于MyHawaiiSpa。点击MyHawaiiSpa商店上的任何商品,都会打开product.php页面,其中提到了产品详情。

目前我使用PHP中的查询字符串管理它。所以每个商店都这样区分:

mywebsite.com/user/shop.php?sid=1

根据互联网研究,我尝试了一些事情,但它没有用。

我想得到我在这里提到的结果:

www.mywebsite.com/user/shop.php?mid=1&sid="MyHawaiiSpa" 

OR

www.mywebsite.com/user/shop.php?sid="MyHawaiiSpa"

www.mywebsite.com/user/MyHawaiiSpa

这是我到目前为止所做的:

<configuration>
    <system.webServer>
        <rewrite>
            <rules>
                <rule name="Product Details 1" enabled="true" stopProcessing="true">
                    <match url="^user/(.+)$" />
                    <action type="Rewrite" url="user/shop.php?sid={R:1}" />
                </rule>
            </rules>
        </rewrite>
    </system.webServer>
</configuration>

3 个答案:

答案 0 :(得分:1)

如果您使用的是IISOS,则问题不是,您的请求可以通过htaccess mod_rewrite

完成

1-如果在测试页面中添加phpinfo()启用了mod_rewrite扩展程序,请检查您的php信息

2-创建文件.htaccess并将此文件放在脚本根目录

3-在.htaccess文件

中添加此ruls
RewriteEngine On
RewriteBase /

RewriteRule ^user/(.*)$  shop.php?sid=$1 [L,NC,QSA]
RewriteRule ^user/(.*)/(.*)$ user/shop.php?mid=$2&sid=$1   [L,NC,QSA]

现在您可以使用此链接

www.mywebsite.com/user/MyHawaiiSpa

www.mywebsite.com/user/MyHawaiiSpa/1

添加此规则只是为了确保您做得不错

1-创建test.php页面并将其添加到根文件夹

将此行添加到.htaccess

下方的RewriteBase /文件中
RewriteRule ^test test.php [L,NC]

现在访问页面

www.mywebsite.com/test

如果还没有工作你需要在php中启用并安装mod_rewrite,你可以谷歌如何

答案 1 :(得分:0)

使用.htaccess。它可以用于重写URL。

答案 2 :(得分:0)

以下是我现在正在使用的最终代码。

<configuration>
    <system.webServer>
        <rewrite>  
            <rules>  
                <rule name="QueryStringDynamicRewrite" stopProcessing="true">  
                    <match url="^(.*)$" ignoreCase="false" />  
                        <conditions>  
                            <add input="{REQUEST_FILENAME}" matchType="IsDirectory" ignoreCase="false" negate="true" />  
                            <add input="{REQUEST_FILENAME}" matchType="IsFile" ignoreCase="false" negate="true" />
                            <add input="{REQUEST_URI}" pattern="^/(admin|mdm|user/includes)" ignoreCase="false" negate="true" />
                        </conditions>  
                        <action type="Rewrite" url="user/shop.php?sid={R:1}" appendQueryString="true" />  
                </rule>
            </rules>  
        </rewrite> 
    </system.webServer>
</configuration>

IIS 7或更高版本Web服务器,Web.Config,PHP,MySQL组合的重要事项。

  • 之前我使用&#34; ^ user /(.+)$现在我已经用&#34; ^ user /(.*)$"替换了。 (+符号替换为*)。

  • 我与我的网络托管服务器提供商GoDaddy确认,他们说我们应该在IIS上使用Web.Config。