使用.htaccess在子文件夹中重写URL

时间:2015-02-20 17:18:36

标签: php url rewrite subdirectory

我正在尝试在PHP应用程序中实现URL重写。有人可以分享在.htaccess中实施URL重写的分步过程。

在我的应用程序中,我想实现以下URL

www.domain.com/shop/shop.php?shopname=myshop&sh=1

www.domain.com/shop/myshop

我使用下面的

RewriteEngine On

RewriteBase /shop/

RewriteCond %{THE_REQUEST} /shop\.php\?shopname=([^\s&]+)&sh=([^\s&]+) [NC]

RewriteRule ^ %1? [R=301,L,NE]

RewriteCond %{REQUEST_FILENAME} !-f

RewriteCond %{REQUEST_FILENAME} !-d

RewriteRule ^([^/]+)/?$ shop.php?shopname=$1&sh=$2 [L,QSA,NC]*

它显示的网址如www.domain.com/shop/myshop

但未指向www.domain.com/shop/shop.php?shopname=myshop&sh=1

1 个答案:

答案 0 :(得分:0)

如果我理解正确,你可以做你想做的事:

RewriteCond %{QUERY_STRING} ^id=([^&]*)&name=(.*)$
RewriteRule ^/shop/shop.php$ /shop/$2?id=$1

RewriteCond检查格式正确的查询字符串并提取值。 $ 1 = ID,$ 2 =名称。

RewriteRule将正确格式的URL重写为新格式,插入RewriteCond中的name和id参数。