如何从 URL 中删除一个目录以外的所有查询字符串?
How do I strip all query string besides one directory from URL?
我想使用查询 /?campaign=whatever
等强制重写所有 url
我写了这样的东西(我不确定这是否是最好的方式):
RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /([^?]*)\?
RewriteRule (.*) /? [R=301,L]
如何告诉 apache 不要只重写目录 /admin/
?
此外,如果有人知道是否有可能使用这种技术搞砸其他一些服务?我不需要分析活动等,人们只是 link 用他们自己的愚蠢跟踪 url 到我的博客,它绕过了缓存,但我目前无法更改缓存系统。
示例:
http://www.example.com/admin/
http://www.example.com/admin/pages.php?var=blabla
(anything after or /admin/) - ignore
否则 - 清理查询字符串。
RewriteCond %{QUERY_STRING} .+
RewriteCond %{REQUEST_URI} !^/admin(?:/.*)?$
RewriteRule (.*) /? [R=301,L]
- 检查查询字符串是否包含某些内容。
- 如果
request URI
不是以 /admin/
开头,请检查 request URI
。
- 如果满足所有条件,重定向 URL - 删除查询字符串。
我想使用查询 /?campaign=whatever
等强制重写所有 url
我写了这样的东西(我不确定这是否是最好的方式):
RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /([^?]*)\?
RewriteRule (.*) /? [R=301,L]
如何告诉 apache 不要只重写目录 /admin/
?
此外,如果有人知道是否有可能使用这种技术搞砸其他一些服务?我不需要分析活动等,人们只是 link 用他们自己的愚蠢跟踪 url 到我的博客,它绕过了缓存,但我目前无法更改缓存系统。
示例:
http://www.example.com/admin/
http://www.example.com/admin/pages.php?var=blabla
(anything after or /admin/) - ignore
否则 - 清理查询字符串。
RewriteCond %{QUERY_STRING} .+
RewriteCond %{REQUEST_URI} !^/admin(?:/.*)?$
RewriteRule (.*) /? [R=301,L]
- 检查查询字符串是否包含某些内容。
- 如果
request URI
不是以/admin/
开头,请检查request URI
。 - 如果满足所有条件,重定向 URL - 删除查询字符串。