php per riscrivere htaccess - reindirizzare se non ci sono dati $ _POST
-
22-07-2019 - |
Domanda
if( count( <*>
Questa funzionalità può essere riscritta con le regole .htaccess?
Logic:
Se non una richiesta POST, reindirizzare a una pagina equivalente con l'intera stringa di query emettendo 301 intestazione e stato, mantenendo il protocollo.
POST ) < 1 ) {
// determine if this was a secure request - we use a non standard HTTPS port so the SERVER_HTTPS_PORT define should always be used in place of 443
$protocol = <*>
Questa funzionalità può essere riscritta con le regole .htaccess?
Logic:
Se non una richiesta POST, reindirizzare a una pagina equivalente con l'intera stringa di query emettendo 301 intestazione e stato, mantenendo il protocollo.
SERVER['SERVER_PORT'] == SERVER_HTTPS_PORT ? 'https' : 'http';
header( "HTTP/1.0 301 Moved Permanently" );
header( "Status: 301" ); // this is for chrome compliance
header( "Location: $protocol://".CLIENT_DOMAIN."{<*>
Questa funzionalità può essere riscritta con le regole .htaccess?
Logic:
Se non una richiesta POST, reindirizzare a una pagina equivalente con l'intera stringa di query emettendo 301 intestazione e stato, mantenendo il protocollo.
SERVER['REQUEST_URI']}" );
session_write_close();
exit;
}
Questa funzionalità può essere riscritta con le regole .htaccess?
Logic:
Se non una richiesta POST, reindirizzare a una pagina equivalente con l'intera stringa di query emettendo 301 intestazione e stato, mantenendo il protocollo.
Soluzione
Prova questo:
RewriteCond %{REQUEST_METHOD} !=POST
RewriteCond %{SERVER_PORT}s ^443(s)|.*
RewriteRule ^foo/bar$ http%1://www.example.com%{REQUEST_URI} [L,R=301]
Non devi semplicemente sostituire 443
con il tuo valore SERVER_HTTPS_PORT
e www.example.com
con il tuo CLIENT_DOMAIN
valore.
Altri suggerimenti
Questo dovrebbe funzionare per te (sostituisci www.google.com
con il tuo CLIENT_DOMAIN
).
RewriteEngine on
RewriteCond %{SERVER_PORT} ^80$
RewriteCond %{REQUEST_METHOD} !^POST$ [NC]
RewriteRule ^(.*)$ http://www.google.com/$1 [L,QSA,R=301]
RewriteCond %{SERVER_PORT} ^443$
RewriteCond %{REQUEST_METHOD} !^POST$ [NC]
RewriteRule ^(.*)$ https://www.google.com/$1 [L,QSA,R=301]
Guarda la documentazione di mod_rewrite di Apache, lì potrebbe essere un modo, usando % {REQUEST_METHOD}
in una condizione RewriteCond
; qualcosa del genere potrebbe fare il trucco:
RewriteCond %{REQUEST_METHOD} !=POST
Seguito, ovviamente, dal RewriteRule
necessario per reindirizzare tutto alla pagina non POST.
Non ho modo di testare in questo momento, quindi questo potrebbe non essere perfetto, ma qualcosa del genere potrebbe forse fare il trucco - o, almeno, guidarti alla soluzione:
RewriteRule ^(.*)$ $1 [QSA,R=301,L]
L'idea è di
- trova tutto
- reindirizza a ciò che è stato abbinato
- mantenendo la stringa di query (flag QSA)
- e reindirizzamento con un codice 301
- e fermarsi lì