2017-10-21 81 views
1

J'ai environ 40 applications de bureau C# qui effectuent un POST à ​​http://www.example.com/submit-bug pour les rapports de bogues générés par l'utilisateur.Comment puis-je empêcher la redirection d'une seule URL POST vers une redirection GET dans .htaccess?

Cependant, j'ai récemment passé mon site Web (où les données POST sont gérées) sur HTTPS, donc tout est maintenant 301'ed à HTTPS via htaccess.

Cela signifie également que mon POST à ​​http://www.example.com/submit-bug est 301'ed à https://www.example.com/submit-bug ce qui entraîne la perte de toutes les données POST lorsqu'il passe de POST à ​​une redirection GET.

Comment puis-je dire à htaccess d'ignorer la redirection avec un message à http://www.example.com/submit-bug et de continuer à faire le routage index.php normal que Laravel utilise.

J'ai essayé toutes sortes de combinaisons des indicateurs L et P, mais ils sont ignorés ou provoquent une erreur 500/404.

Ceci est mon htaccess actuelle

RewriteEngine On 

#RewriteCond %{REQUEST_URI} (.*)submit-bug(.*) 
#RewriteRule^index.php [L] 

RewriteCond %{HTTPS} off 

# First rewrite to HTTPS: 
# Don't put www. here. If it is already there it will be included, if not 
# the subsequent rule will catch it. 

RewriteRule .* https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301] 
# Now, rewrite any request to the wrong domain to use www. 
# [NC] is a case-insensitive match 

RewriteCond %{HTTP_HOST} !^www\. [NC] 

RewriteRule .* https://www.%{HTTP_HOST}%{REQUEST_URI} [L,R=301] 

# Redirect Trailing Slashes If Not A Folder... 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^(.*)/$ /$1 [L,R=301] 

# Handle Front Controller... 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteRule^index.php [L] 

# Handle Authorization Header 
RewriteCond %{HTTP:Authorization} . 
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}] 

Répondre

1

Vous pouvez supprimer tout ou réécrire redirections concernant un POST, en ajoutant au début, avant RewriteCond %{HTTPS} off:

RewriteCond %{REQUEST_METHOD} POST 
RewriteRule^- [L] 
+1

Excellent! Donc, tout ce que je avais besoin à la fin était \t RewriteCond% {} REQUEST_METHOD POST RewriteRule^index.php [L] Bounty accordé mon ami :-) – jamie

+0

Merci! ;-) – Croises