Na podstawie komentarzy Twojego pytania wydaje się, że chcesz usunąć ciąg zapytania w dowolnym momencie, gdy pojawi się parametr strony. Ten rodzaj reguły przepisywania nie znika ani nie zmienia adresu URL, chyba że istnieje przekierowanie. Jeśli więc nie dodasz R=301
lub R
do reguły przepisywania, ciąg zapytania nie zostanie usunięty. Wszystkie poniższe pracował na moim serwerze, aby usunąć ciąg kwerendy, a mój serwer jest 100% HTTPS:
RewriteCond %{QUERY_STRING} "page=" [NC]
RewriteRule (.*) /$1? [R=301,L]
Lub może być w stanie użyć flagi QSD zamiast znaku zapytania:
RewriteCond %{QUERY_STRING} "page=" [NC]
RewriteRule (.*) /$1 [R=301,L,QSD]
Lub może być w stanie używać coś takiego:
RewriteCond %{QUERY_STRING} "page=" [NC]
RewriteRule .* /? [R=301,L]
Albo po prostu R (do 302) zamiast R = 301:
RewriteCond %{QUERY_STRING} "page=" [NC]
RewriteRule (.*) /$1? [R,L]
Ale w żadnym wypadku nie usunięto ciągu zapytania, chyba że użyłem przekierowania.
są one jedynymi zasady masz? – akond
Nie, po przekierowaniu 301 w ten sposób: RewriteRule ^/path/file.html $ https: //www.domain.tld/path/file/ [R = 301, L] – Giuseppe
Jaki jest sens 'RewriteRule (. *)/1 $? [L] '? – akond