Agree, much better than all that rewrite gymnastics.ICOn Wed, Jun 12, 2019, 6:30 AM Frank <thumbs@xxxxxxxxxx> wrote:No, I assure you, ,mod_rewrite is not needed here.
To enforce a canonical hostname, use the Redirect directive and separate
vhost. To have all requests handled by a php routing script, use
FallbackResource /path/to/file.php
Lastly, to redirect to https://, use Redirect from a :80 vhost.
On 11/06/19 01:24 PM, Jim Weill wrote:
> The sites I am trying to model are drupal-based. We aren't dealing with
> plain static HTML or PHP sites. We have the main server, which this
> test server is trying to mirror, and a secondary project server which
> exists to give project people limited root access to update their own
> code. The secondary server also has drupal-based sites, but the
> redirections I describe in the issue work on the secondary server. They
> were never implemented in any way on the main production server. If I
> put wiki2.example.com <http://wiki2.example.com>, it should return
> wiki2.example.com/wiki2 <http://wiki2.example.com/wiki2>. And so if I
> have site1, wiki2, and www on the main server, I can go to
> wiki2.example.com/www <http://wiki2.example.com/www> and get the main
> www site, when we want the main site to always turn up
> www.example.com/www <http://www.example.com/www>.
>
> Is this not what mod_rewrite is meant to solve? I fully admit I am not
> well-versed in apache, my prior work was mainly Windows Server and
> Exchange, but I am trying to learn this stuff based on what we had set
> up long before I came here.
>
> jim
>
> On Tue, Jun 11, 2019 at 5:18 AM Frank <thumbs@xxxxxxxxxx
> <mailto:thumbs@xxxxxxxxxx>> wrote:
>
> You are also grossly abusing mod_rewrite for this. It isn't needed
> at all.
>
> Use FallbackResource, Redirect, and separate vhosts, as Igor mentioned.
>
> On 11/06/19 01:33 AM, Igor Cicimov wrote:
> > Since you already have two separate domains why not use virtual hosts
> > each with it's own document root?
> >
> > IC
> >
> > On Tue, Jun 11, 2019, 9:18 AM Jim Weill <moondog@xxxxxxxxxxxxxxxxx
> <mailto:moondog@xxxxxxxxxxxxxxxxx>
> > <mailto:moondog@xxxxxxxxxxxxxxxxx
> <mailto:moondog@xxxxxxxxxxxxxxxxx>>> wrote:
> >
> > We have a test server, with test sites that are in two different
> > branches of development, but essentially the same base content.
> > They live at /x/y/z/testsite and /x/y/z/test-site. We have other
> > sites such as wikis and one-offs which need to stay online on our
> > production server, and I have been testing using rewrites to force
> > the URL to conform to the directory path that is defined in the
> > .conf file.
> >
> > So for example, in the testsite.conf file, I have the following:
> > RewriteEngine On
> > RewriteCond %{HTTP_HOST} ^www.example.com
> <http://www.example.com> <http://www.example.com>$ [NC]
> > RewriteRule ^/$ https://testsite.example.com/testsite/ [L,R]
> >
> > alias /testsite "/x/y/z/testsite"
> > <Directory "/x/y/z/testsite">
> > Require all granted
> > RewriteEngine On
> > RewriteBase /testsite
> > RewriteCond %{REQUEST_FILENAME} !-f
> > RewriteCond %{REQUEST_FILENAME} !-d
> > RewriteRule ^(.*)$ index.php?q=$1 [L,QSA]
> > RewriteCond %{HTTPS} Off
> > RewriteRule ^(.*) https://%{HTTP_HOST}%{REQUEST_URI}
> > RewriteCond %{HTTP_HOST} !testsite.example.com
> <http://testsite.example.com>
> > <http://testsite.example.com>
> > RewriteRule ^.*$ https://testsite.example.com%{REQUEST_URI} [R]
> > </Directory>
> >
> > The test-site.conf file is the exact same except for adding the
> > hypen in the names.
> >
> > We also have the following in ssl.conf for these:
> > RewriteRule ^(.*)/testsite$ $1/testsite/ [R,NC]
> > RewriteCond %{HTTP_HOST} testsite\.example\.com
> > RewriteCond %{REQUEST_URI} ^/testsite(.*)
> > RewriteRule (.*)
> > https://testsite.example.com%{REQUEST_URI} [R]
> > RewriteCond %{HTTP_HOST} testsite.example.com
> <http://testsite.example.com>
> > <http://testsite.example.com>
> > RewriteCond %{REQUEST_URI} ^/$
> > RewriteRule (.*)
> > https://testsite.example.com/testsite/ [R]
> >
> > RewriteRule ^(.*)/test-site$ $1/test-site/ [R,NC]
> > RewriteCond %{HTTP_HOST} test-site\.example\.com
> > RewriteCond %{REQUEST_URI} ^/test-site(.*)
> > RewriteRule (.*)
> > https://test-site.example.com%{REQUEST_URI} [R]
> > RewriteCond %{HTTP_HOST} test-site.example.com
> <http://test-site.example.com>
> > <http://test-site.example.com>
> > RewriteCond %{REQUEST_URI} ^/$
> > RewriteRule (.*)
> > https://test-site.example.com/test-site [R]
> >
> >
> > If I leave this as shown, and restart the service, neither page
> > loads at all. If I comment out the three lines after "RewriteRule
> > ^(.*)/testsite$" and "RewriteRule ^(.*)/test-site$" respectively,
> > the sites load properly. We have this exact set of rewrites on
> > ssl.conf for all sites on the production server and it
> rewrites the
> > URL properly. So I'm not sure where it's failing on the test
> site.
> > Logs are set to trace8 on the test server and I'm not getting
> > anything that helps tells me where the problem is.
> >
> >
> > jim
> >
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscribe@xxxxxxxxxxxxxxxx
> <mailto:users-unsubscribe@xxxxxxxxxxxxxxxx>
> For additional commands, e-mail: users-help@xxxxxxxxxxxxxxxx
> <mailto:users-help@xxxxxxxxxxxxxxxx>
>
---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@xxxxxxxxxxxxxxxx
For additional commands, e-mail: users-help@xxxxxxxxxxxxxxxx