.htaccess - 从 SEO 友好 URL 中删除 id/variable

标签 .htaccess url mod-rewrite seo friendly-url

我正在尝试重写一个 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 存在于 root 中,与 .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]

关于.htaccess - 从 SEO 友好 URL 中删除 id/variable,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65521954/

相关文章:

apache - 如何在 htaccess 中使用 IF 为某些 URL 设置状态代码

ios - 授权回调URL GitHub

c - 从 Cygwin/POSIX 打开 URL?

php - htaccess 强制 https 并在没有子域的情况下将非 www 重定向到 www

regex - htaccess 比较 cookie 值并在评估返回 true/false 时重定向

.htaccess - 是否可以用第一个大写字母重写 URL?

.htaccess - 你如何确保一行存在并且被 Ansible LineinFile 取消注释?

php - 使用 slug 从 mysql 中获取文章

url - LaTeX\url{} 斜体

Apache 重写 URL 但不重写某些文件夹