我正在尝试重写一个URL,使其对SEO友好,并排除产品ID。目前我在.htaccess文件中使用这个:
RewriteRule ^shop/product/([^/.]+)/([^/.]+)$ products.php?id=$2&name=$1 [NC,L]
例如,将其重写为:
shop/product/product-name/12
有没有一种方法可以重写此URL,使其删除或从末尾排除产品ID?
请您尝试以下内容,并使用所示的示例进行编写和测试。请确保在测试URL之前清除浏览器缓存。
第一组规则是考虑您的product.php存在于根目录中,与.htaccess所在的路径相同。
RewriteEngine ON
RewriteCond %{QUERY_STRING} ^$
RewriteRule ^shop/product/([^/]*)/([^/]*)/?$ /products.php?id=$2&name=$1 [NE,R=301,NC]
RewriteCond %{QUERY_STRING} !^$
RewriteCond %{THE_REQUEST} s/products.php?id=[^&]*&name=[^s]*s [NC]
RewriteRule ^(.*)$ shop/product [R=301,QSD,NE,L]
或请仅在.htaccess.中一次使用以上或以下规则
RewriteEngine ON
RewriteCond %{QUERY_STRING} ^$
RewriteRule ^shop/product/([^/]*)/([^/]*)/?$ products.php?id=$2&name=$1 [NE,R=301,NC]
RewriteCond %{QUERY_STRING} !^$
RewriteCond %{THE_REQUEST} products.php?id=[^&]*&name=[^s]*s [NC]
RewriteRule ^(.*)$ shop/product [R=301,QSD,NE,L]