So just to make sure I have this correct: the main production server has a couple pages of rewrites for old URLs and home pages that moved servers or changed path. And changing the baseURL with a Redirect directive in a vhost instead of mod_rewrite will not break any of that?
jim On Tue, Jun 11, 2019 at 2:34 PM Igor Cicimov <icici...@gmail.com> wrote: > Agree, much better than all that rewrite gymnastics. > > IC > > On Wed, Jun 12, 2019, 6:30 AM Frank <thu...@apache.org> 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 <thu...@apache.org >> > <mailto:thu...@apache.org>> 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 < >> moon...@icsi.berkeley.edu >> > <mailto:moon...@icsi.berkeley.edu> >> > > <mailto:moon...@icsi.berkeley.edu >> > <mailto:moon...@icsi.berkeley.edu>>> 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-unsubscr...@httpd.apache.org >> > <mailto:users-unsubscr...@httpd.apache.org> >> > For additional commands, e-mail: users-h...@httpd.apache.org >> > <mailto:users-h...@httpd.apache.org> >> > >> >> --------------------------------------------------------------------- >> To unsubscribe, e-mail: users-unsubscr...@httpd.apache.org >> For additional commands, e-mail: users-h...@httpd.apache.org >> >>