Sorry to butt in here.   I've been following this post with some interest.
  I wanted to accomplish the same thing the original OP wanted to
accomplish, redirect all traffic to the secure version of my site.   I went
to the internet and found directions on how to do this using mod_rewrite
rules.   Now that I know I should be using redirect instead, I had some
questions.   Should I start my own topic or just ask in this one?   What's
generally considered best practice in a situation like this, where my
question revolves around the original ops question?

Thanks!

On Sat, Feb 18, 2017 at 3:02 PM, Dr James Smith <j...@sanger.ac.uk> wrote:

> As I only run HTTPS - I have the following on port 80 - (this can't be
> done with redirect)
>
> <VirtualHost *:80>
>   ...
>   ...
>   ...
>
>   RewriteEngine on
>   RewriteCond   %{REQUEST_URI}  !^/.well-known/acme-challenge
>   RewriteRule   ^(.*)$ https://%{SERVER_NAME}%{REQUEST_URI}
> [R=permanent,L,NE]
> </VirtualHost>
>
> So I only have one port 80 configuration - even tho' I'm running something
> like 30 sub-domains on one machine and 70 sub-domains on the other...
> {There is some other stuff associated with this - and I've got HTST
> headers set - and preloaded where I can - so most browsers won't hit the
> port 80 anyway!}
>
>
>
> On 18/02/2017 19:00, Daniel wrote:
>
> Yes please, let's stay away of convoluted and most times innecessary
> mod_rewrite examples to do simpleton configurations.
>
> If you are in virtualhost 80, you have specified servername correctly and
> you just want to redirect to ssl, why not a single Redirect statement?
>
> As Yann's refered document says:
> Redirect / https://something.example.com/
>
> Most people here knows this but there are gazillions web pages refering to
> bad advice, duck and tape solutions and convolued ways of using mod_rewrite
> for a simple redirection when placed in proper context, we need to finish
> with that trend, and the best way is to give simple, straight to the point
> examples "first".
>
> The mod_rewrite example given,lets slice it out:
> > RewriteCond %{HTTP_HOST} =www.example.com
> > RewriteCond %{SERVER_PORT} =80
> > RewriteRule ^(.*)$ https://www.example.com/$1 [R]
>
> This clearly assumes it is a generic recipe in a .htaccess somewhere which
> can be read from a non-SSL virtualhost or non-SSL virtualhost (just to be
> ignored).
>
> 1º It checks the host name, but why? if you have defined a VirtualHost
> with that servername and there are no conflicts the request is already
> landing there.
> 2º It checks for port 80. But we are redirecting to SSL, so we are already
> on port 80, why check it?
> 3º Can be replaced with a Redirect as mentioned above.
>
> So instead of giving out recipes for .htaccess thought out for an aging
> era or shared virtualhosting, lets recommend the ideal virtualhost context
> recipe first as Yann proposed earlier:
>
> Define the virtualhost with the names you serve.
> <VirtualHost *:80>
> ServerName something.example.com
> Redirect / https://something.example.com/
> </VirtualHost>
>
> There is no guessing here, no unnecessary directives and it's hard to miss
> or confuse with other directives and the context where it resides is
> crystal clear.
>
> Later on, when things need to be complicated, then I guess we can use "If"
> or "mod_rewrite", and recommend it as needed.
>
>
> 2017-02-18 19:38 GMT+01:00 Richard <lists-apa...@listmail.innovate.net>:
>
>>
>>
>> > Date: Saturday, February 18, 2017 11:04:34 -0700
>> > From: James Moe <ji...@sohnen-moe.com>
>> >
>> > On 02/18/2017 05:08 AM, Rodrigo Cunha wrote:
>> >> i want redirect all request from port 80 to 443.
>> >> what is better setting for fix this?
>> >>
>> >   Better than what?
>> >   Fix? Is it broken?
>> >
>> > RewriteCond %{HTTP_HOST} =www.example.com
>> > RewriteCond %{SERVER_PORT} =80
>> > RewriteRule ^(.*)$ https://www.example.com/$1 [R]
>>
>> Perhaps, better than using a "rewrite"? See the documentation
>> reference, given in an earlier post:
>>
>>   <https://httpd.apache.org/docs/2.4/rewrite/avoid.html#redirect>
>>
>> that has this as a specific example of when/why to use a "redirect"
>> rather than a "rewrite".
>>
>>
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: users-unsubscr...@httpd.apache.org
>> For additional commands, e-mail: users-h...@httpd.apache.org
>>
>>
>
>
> --
> *Daniel Ferradal*
> IT Specialist
>
> email         dferradal at gmail.com
> linkedin     es.linkedin.com/in/danielferradal
>
>
>
> -- The Wellcome Trust Sanger Institute is operated by Genome Research
> Limited, a charity registered in England with number 1021457 and a company
> registered in England with number 2742969, whose registered office is 215
> Euston Road, London, NW1 2BE.
>

Reply via email to