重写2个php变量以清除url
我有一个网址:website.co.uk/product.php?id=123456&name=产品名称 并希望将其改写为:重写2个php变量以清除url,php,.htaccess,mod-rewrite,Php,.htaccess,Mod Rewrite,我有一个网址:website.co.uk/product.php?id=123456&name=产品名称 并希望将其改写为: website.co.uk/product/123456/name-of-product 或者更好: website.co.uk/123456/name-of-product 这重写了第一个变量$id RewriteRule ^product/([0-9]+)/?$ product.php?id=$1 [NC,L] 至产品编号/123456
website.co.uk/product/123456/name-of-product
或者更好:
website.co.uk/123456/name-of-product
这重写了第一个变量$id
RewriteRule ^product/([0-9]+)/?$ product.php?id=$1 [NC,L]
至产品编号/123456
只需第二个变量即可为2参数URI添加另一条规则:
RewriteRule ^product/([0-9]+)/?$ product.php?id=$1 [NC,L,QSA]
RewriteRule ^product/([0-9]+)/([\w-]+)/?$ product.php?id=$1&name=$2 [NC,L,QSA]
只需匹配另一个变量(根据需要更正范围):
当对正则表达式的使用有疑问时,我强烈推荐使用非常好的小型软件来试验和测试您的表达式。这很有效,谢谢-是否可以删除产品/以便它只显示123456/产品名称?确保最后一条规则可以变成:
RewriteRule^([0-9]+)/([\w-]+)/?$product.php?id=$1&name=$2[NC、L、QSA]
更改htaccess文件后,我注意到,如果我在一个产品页面上,单击一个链接,例如“home.php”,它会将product/123456/name of product/home.php放在断开链接的链接之前……我是否应该将所有链接改为“home.php”,而不是将所有其他页面的链接都改为“home.php”更简单的方法,而不是更改所有内部链接,将website.co.uk/放在它们前面,或者您可以在home.php
之前放置一个
,比如
,或者您可以尝试使用BASE
这样的标记:
RewriteRule ^product/([0-9]+)/([a-zA-Z0-9-]+)/?$ product.php?id=$1&name=$2 [NC,L]