.htaccess - 如何删除网址的末尾部分?

时间:2018-03-04 21:17:44

标签: .htaccess

我想重定向以下网址:

http://example.com/index.php/item123-detail?tmpl=component&format=pdf

为:

http://example.com/index.php/item123-detail

本质上删除"?tmpl = component& format = pdf"来自所有网址。

到目前为止,我已经尝试了其他Stack问题的多个不同的例子。任何帮助将非常感激。谢谢。

2 个答案:

答案 0 :(得分:0)

网址?tmpl=component&format=pdf的这一部分名为QUERY_STRING,如果您要将其从任何请求中删除,您可以执行以下几种方案,例如将此代码放在主目录.htaccess中:

RewriteEngine On
RewriteCond %{THE_REQUEST} \?
RewriteRule ^(.*)$   /$1? [L,R=301]

因此,通过上面的代码,您只能使用?删除请求。

如果您只想匹配此查询字符串并保留其他字符串,请告诉我您另一个情况RewriteCond %{QUERY_STRING}

好的,要仅匹配此查询字符串,请将代码替换为:

RewriteEngine On
RewriteCond %{QUERY_STRING} ^tmpl=component&format=pdf$
RewriteRule ^(.*)$   /$1? [L,R=301]

如果是tmpl&格式值不固定,只能用字母代替,用以下代码替换:

RewriteEngine On
RewriteCond %{QUERY_STRING} ^tmpl=([a-zA-Z]+)&format=([a-zA-Z]+)$
RewriteRule ^(.*)$   /$1? [L,R=301]

答案 1 :(得分:-1)

在另一篇文章中找到的解决方案如下:

remove query string from end of url URL using .htaccess

RewriteCond%{QUERY_STRING}" post_type =" [NC]

RewriteRule(。*)/ $ 1? [R = 301,L]