.htaccess - htaccess 重定向并保留变量

标签 .htaccess mod-rewrite url-rewriting redirect

我正在尝试重定向大量 404。 一些旧网站链接到
http://example.com/product.tmpl?SKU=XXX
其中 XXX 是 SKU 数字。

我希望它重定向到
http://example.com/product.php?SKU=XXX

这是我已经到达的地方,但它仍然不起作用。我的代码有错字吗?

RewriteEngine On
RewriteCond %{QUERY_STRING} ^SKU=([^&]+)
RewriteRule ^/?product\.tmpl$ /product.php?SKU=%1 [L,R=301]

编辑:我的完整 htaccess 文件如下:

RewriteEngine On
RewriteCond %{QUERY_STRING} ^SKU=([^&]+)
RewriteRule ^/?product\.tmpl$ /product.php?SKU=%1 [L,R=301]

# BEGIN WordPress

<IfModule mod_rewrite.c>
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>

# END WordPress

最佳答案

尝试一下:

RewriteRule ^/?product\.tmpl$ /product.php [L,QSA]

修饰符 QSA 保留查询字符串,无论它是什么:http://httpd.apache.org/docs/2.4/rewrite/flags.html#flag_qsa

关于.htaccess - htaccess 重定向并保留变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32705740/

相关文章:

.htaccess - <http ://to http://www. > 和 <https ://to https://www. >

apache - 使用 apache 服务器将 tomcat 重定向到 https (Windows)

php - 指向友好 URL 的 HTML 表单

asp.net-core - 使用 Microsoft.AspNetCore.Rewrite 扩展在 ASP.NET core 3 中重写静态文件的 URL

php - & 登录 url 重写

php - Laravel 所有路由除了 '/' 返回 404

apache - 如何使用 htaccess 更改文件夹名称并删除 URL 末尾的字符串

PHP SEO优化地址与物理页面地址冲突

php - .htaccess 如果文件不存在则重定向

php - 显示不带扩展名的正确 URL,如果 URL 不正确则重定向