繁体   English   中英

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

[英]URL rewrite in sub folder using .htaccess

我正在尝试在我的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

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

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

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM