这是我已经停滞了好几天的问题。 我的设置是安装了Woocommerce的Wordpress。永久链接结构非常有用,所以我只需要将旧URL重定向到新URL。
旧网址结构如下所示:
http://domain.tld/?product=bla-bla
但我需要他们像这样重定向:
http://domain.tld/product/bla-bla
* bla-bla是动态部分。
.htaccess中的规则:
RewriteCond %{QUERY_STRING} ^product=(.*)$ [NC]
RewriteRule ^$ /product/%1 [NC,L,R=301]
但结果是错误的:
http://domain.tld/product/bla-bla?product=bla-bla
.htaccess的内容:
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
RewriteCond %{QUERY_STRING} ^product=(.*)$ [NC]
RewriteRule ^$ /product/%1 [NC,L,R=301]
我将不胜感激任何帮助!
答案 0 :(得分:2)
这样做:
RewriteEngine On
RewriteBase /
RewriteCond %{QUERY_STRING} ^product=(.*)$ [NC]
RewriteRule ^$ /product/%1? [NC,L,R=301]
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
目标末尾的 ?
将从原始网址中删除任何查询字符串。