我正在尝试在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
答案 0 :(得分:0)
如果我理解正确,你可以做你想做的事:
RewriteCond %{QUERY_STRING} ^id=([^&]*)&name=(.*)$
RewriteRule ^/shop/shop.php$ /shop/$2?id=$1
RewriteCond检查格式正确的查询字符串并提取值。 $ 1 = ID,$ 2 =名称。
RewriteRule将正确格式的URL重写为新格式,插入RewriteCond中的name和id参数。