httpd-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Frank <thu...@apache.org>
Subject Re: [users@httpd] mod_rewrite question on directory
Date Thu, 13 Jun 2019 12:02:08 GMT
Jim,

Using mod_alias or mod_rewrite with [R] is functionally equivalent, yes.
The former is simpler and easier to maintain, of course.

Note that you can use RedirectMatch if you need PCRE support and/or
captured expressions.

On 12/06/19 05:42 PM, Jim Weill wrote:
> 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 <icicimov@gmail.com
> <mailto:icicimov@gmail.com>> wrote:
> 
>     Agree, much better than all that rewrite gymnastics.
> 
>     IC
> 
>     On Wed, Jun 12, 2019, 6:30 AM Frank <thumbs@apache.org
>     <mailto:thumbs@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>
>         <http://wiki2.example.com>, it should return
>         > wiki2.example.com/wiki2 <http://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>
>         <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>
>         <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@apache.org
>         <mailto:thumbs@apache.org>
>         > <mailto:thumbs@apache.org <mailto:thumbs@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
>         <moondog@icsi.berkeley.edu <mailto:moondog@icsi.berkeley.edu>
>         >     <mailto:moondog@icsi.berkeley.edu
>         <mailto:moondog@icsi.berkeley.edu>>
>         >     > <mailto:moondog@icsi.berkeley.edu
>         <mailto:moondog@icsi.berkeley.edu>
>         >     <mailto:moondog@icsi.berkeley.edu
>         <mailto:moondog@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> <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>
>         >     >     <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>
>         >     >     <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>
>         >     >     <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@httpd.apache.org
>         <mailto:users-unsubscribe@httpd.apache.org>
>         >     <mailto:users-unsubscribe@httpd.apache.org
>         <mailto:users-unsubscribe@httpd.apache.org>>
>         >     For additional commands, e-mail:
>         users-help@httpd.apache.org <mailto:users-help@httpd.apache.org>
>         >     <mailto:users-help@httpd.apache.org
>         <mailto:users-help@httpd.apache.org>>
>         >
> 
>         ---------------------------------------------------------------------
>         To unsubscribe, e-mail: users-unsubscribe@httpd.apache.org
>         <mailto:users-unsubscribe@httpd.apache.org>
>         For additional commands, e-mail: users-help@httpd.apache.org
>         <mailto:users-help@httpd.apache.org>
> 

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@httpd.apache.org
For additional commands, e-mail: users-help@httpd.apache.org


Mime
View raw message