Giu*_*ppe 7 apache mod-rewrite
以下规则适用于http但不适用于https.
RewriteCond %{QUERY_STRING} "page=" [NC]
RewriteRule (.*) /$1? [L]
RewriteRule ^/path/file.html$ https://www.domain.tld/path/file/ [R=301,L]
Run Code Online (Sandbox Code Playgroud)
为什么query_string部分在https中不起作用?
根据您问题的评论,您似乎只想在存在页面参数时删除查询字符串。除非存在重定向,否则这种类型的重写规则不会删除或更改 URL。因此,如果您不将R=301or添加R到重写规则中,则查询字符串将不会被删除。以下所有操作都在我的服务器上进行,以删除查询字符串,并且我的服务器是 100% HTTPS:
RewriteCond %{QUERY_STRING} "page=" [NC]
RewriteRule (.*) /$1? [R=301,L]
Run Code Online (Sandbox Code Playgroud)
或者您可以使用 QSD 标志而不是问号:
RewriteCond %{QUERY_STRING} "page=" [NC]
RewriteRule (.*) /$1 [R=301,L,QSD]
Run Code Online (Sandbox Code Playgroud)
或者你可以使用这样的东西:
RewriteCond %{QUERY_STRING} "page=" [NC]
RewriteRule .* /? [R=301,L]
Run Code Online (Sandbox Code Playgroud)
或者只是 R(对于 302)而不是 R=301:
RewriteCond %{QUERY_STRING} "page=" [NC]
RewriteRule (.*) /$1? [R,L]
Run Code Online (Sandbox Code Playgroud)
但除非我使用重定向,否则查询字符串在任何情况下都不会被删除。
| 归档时间: |
|
| 查看次数: |
394 次 |
| 最近记录: |