.htaccess - 从 SEO 友好的 URL 中删除 id/变量
问题描述
我正在尝试重写一个 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]
推荐阅读
- python - Tkinter - 调整包含其他小部件的小部件
- wpf - 向 List 添加项目时调用 NotifyProportyChanged 不起作用,为什么?
- delphi - idhttp:特定站点上的 SSLv3_READ_BYTES 错误
- selenium-webdriver - 如何使用 WebDriverRunner 在隐身模式下创建 Chrome 浏览器
- bash - 在 bash 中解析结果
- spring-boot - feign.RetryableException:读取执行 GET 超时
- angular - Angular4 - 无效的不记名令牌,令牌= null
- angular - 数组上的过滤函数无法第二次返回结果
- gatling - 超时异常后,加特林活跃用户下降到负数以进行更长时间的运行
- webrtc - ICE 候选人仅从一个网络接口收集