让我用例子来解释:
每当有人在我的网站上开设帐户时,他/她也会创建一个商店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>
答案 0 :(得分:1)
如果您使用的是IIS
或OS
,则问题不是,您的请求可以通过htaccess
mod_rewrite
1-如果在测试页面中添加phpinfo()
启用了mod_rewrite扩展程序,请检查您的php信息
2-创建文件.htaccess
并将此文件放在脚本根目录
3-在.htaccess
文件
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。