httpd-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Boyle Owen" <Owen.Bo...@swx.com>
Subject RE: [users@httpd] problem configuring mod_rewrite rule
Date Wed, 05 Mar 2003 13:31:07 GMT
>-----Original Message-----
>From: Michael Klama [mailto:nosedive@tampabay.rr.com]

>  In answer to your questions you posted
>
>What The User Types: client web site administrators.  This 
>rewrite will take
>them to a page that is customized to their domain
>
>What The URL Should Change To:  I am not so concerned with 
>changing the URL.
>If it can be changed, fine, if not, fine.  

You misunderstand my question - I was looking for an *example*, e.g.

User "banana" types: http://users.mrktechweb.com/
URL becomes: http://users.mrktechweb.com/banana

However, having read the rest of your post, I now understand you don't want anything like
that... Am I correct in deducing that you want:

- User "banana" types: http://users.mrktechweb.com/
- URL Stays http://users.mrktechweb.com/
- DocRoot changes to /home/users/web/banana/

If so, you have a major misunderstanding of mod_rewrite. It rewrites URLs - not filepaths.
It turns one URL into another URL so the final destination still has to be a URL. But you
want to change an internal filepath and that is not within the scope of mod_rewrite.

You can only have one DocRoot per VirtualHost so the only way to achieve this would be to
have a separate VH for each user. The simplest scheme would be to run the VHs on high port
numbers and use mod_rewrite in proxy mode (to hide the VH URLs), e.g.

# Main site VH
Listen ip:80
<VirtualHost ip:80>
	ServerName     users.mrktechweb.com
	RewriteCond    %{REMOTE_USER} banana
	RewriteRule    /(.*)    	http://localhost:8000/ [P]
	RewriteCond    %{REMOTE_USER} mango
	RewriteRule    /(.*)    	http://localhost:8001/ [P]
	...
</VirtualHost>

Listen 127.0.0.1:8000
<VirtualHost 127.0.0.1:8000>
	DocumentRoot /home/users/web/banana
</VirtualHost>

Listen 127.0.0.1:8001
<VirtualHost 127.0.0.1:8001>
	DocumentRoot /home/users/web/mango
</VirtualHost>

Don't know what you'd do about ProxyPassReverse though...

Rgds,
Owen Boyle
Disclaimer: Any disclaimer attached to this message may be ignored. 

>My concern is 
>changing the file
>path to the page that is customized for their domain.  In this 
>particular
>case I am working on the document root for users.mrktechweb.com is
>/home/users/web/ and this rewrite needs to change that to
>/home/users/web/mrktechweb/ based on RewriteCond REMOTE_USER.  Another
>different domain admin will type in the same URL 
>users.mrktechweb.com and
>will be taken to his particular directory 
>/home/users/web/hisdomain/.  I
>will put in a rewrite rule and condition for each domain that 
>I have on my
>server so each site admin can access their own customized page 
>in their own
>particular directory beneath the users.mrktechweb.com document root.
>
>Last night I also discovered that the permission error I was 
>getting was due
>to the fact that the file path was not being rewritten and I 
>was ending up
>in the same document root /home/users/web/ which did not 
>contain an index
>file and I do not have directory indexing turned on on this server.
>
>I hope I have explained all of this properly and this will be 
>useful in your
>response.
>
>Mike
>
>-----Original Message-----
>From: Boyle Owen [mailto:Owen.Boyle@swx.com] 
>Sent: Wednesday, March 05, 2003 3:03 AM
>To: users@httpd.apache.org
>Subject: RE: [users@httpd] problem configuring mod_rewrite rule
>
>>-----Original Message-----
>>From: Michael Klama [mailto:nosedive@tampabay.rr.com]
>>
>>Owen,
>>I used the rule that you inserted below RewriteRule     /(.*)
>>/mrktechweb/$1/index.htm and changed it to read /(.*)
>>$1/mrktechweb/index.htm and it actually rewrote the url 
>>correctly in the
>>browser but I still get the error that I do not have 
>>permission to access /
>>on this server.  Any ideas?
>
>So you have a different problem. I'm still not entirely clear 
>what you are
>trying to achieve because you haven't given a clear example. 
>Can you please
>fill in the blanks (note - URLs, not filepaths).
>
>What The User Types:
>
>What The URL Should Change To:
>
>(Give several examples rather than using wildcard variable 
>strings and so
>on...)
>
>Since you are not using a [P] flag, I guess you are happy with 
>mod_rewrite
>generating redirects. Therefore the rewritten URL must be 
>visible from the
>client. So what happens if you bypass mod_rewrite and try to access the
>final URL directly from the client? I guess you get the 
>"permission" problem
>(BTW, I am assuming you mean a "403 Forbidden" - it would be 
>helpful if you
>always quote the HTTP status code and its official title instead of
>paraphrasing it).
>
>In that case, the problem is that access to the destination 
>URL is "Deny"-ed
>somewhere. Check in the error_log for "access denied by server
>configuration"...
>
>Rgds,
>Owen Boyle
>Disclaimer: Any disclaimer attached to this message may be ignored. 
>
>
>>
>>Mike 
>>
>>-----Original Message-----
>>From: Boyle Owen [mailto:Owen.Boyle@swx.com] 
>>Sent: Tuesday, March 04, 2003 10:31 AM
>>To: users@httpd.apache.org
>>Subject: RE: [users@httpd] problem configuring mod_rewrite rule
>>
>>>-----Original Message-----
>>>From: Michael Klama [mailto:fvimike@earthlink.net]
>>>
>>>Thank you for your response Owen.  I am in meetings all day 
>>>long so will not
>>>be able to try this until this evening.  If I am not mistaken, 
>>>what you are
>>>saying is that this rule will append the original root 
>>>directory onto the
>>>end of what I am trying to change the directory too.  This is 
>>>not what I intended.  
>>
>>I guessed that... 
>>
>>>What I intended is to take the request which goes 
>>>to the root
>>>directory of this web and at the point that it reaches that 
>>>root directory,
>>>is changed to point to a lower directory which is inside the 
>>>root directory based on the REMOTE_USER condition.
>>
>>Ummm... I'm  a bit lost in the subordinate clauses here (an 
>>example might be
>>useful...) Usually, you use mod_rewrite to map a simple 
>>webspace (visible to
>>the client) to a more complicated internal webspace, e.g.
>>
>>	/foobar  --> /mrtechweb/foobar/index.html
>>
>>to do that, use;
>>
>>        RewriteRule     /(.*)   /mrktechweb/$1/index.htm
>>
>>Is this closer to what you had in mind?
>>
>>Rgds,
>>Owen Boyle
>>Disclaimer: Any disclaimer attached to this message may be ignored. 
>>
>>>
>>>Thanks
>>>Mike
>>>
>>>
>>>-----Original Message-----
>>>From: Boyle Owen [mailto:Owen.Boyle@swx.com]
>>>Sent: Tuesday, March 04, 2003 8:57 AM
>>>To: users@httpd.apache.org
>>>Subject: RE: [users@httpd] problem configuring mod_rewrite rule
>>>
>>>>-----Original Message-----
>>>>From: Michael Klama [mailto:nosedive@tampabay.rr.com]
>>>>
>>>>RewriteEngine  on
>>>>RewriteCond    %{REMOTE_USER}  ^mike.*
>>>>RewriteRule    (/*)    /mrktechweb/index.htm$1
>>>
>>>Try:
>>>
>>>        RewriteRule     (/.*)   /mrktechweb/index.htm$1
>>>
>>>It's a subtle difference but mod_rewrite uses regexp, it's 
>>not Perl ;-)
>>>
>>>By the way, this will rewrite /foo.bar as 
>/mrktechweb/index.htmfoo.bar
>>>which is a bit funny....
>>>
>>>Rgds,
>>>Owen Boyle
>>>Disclaimer: Any disclaimer attached to this message may be ignored.
>>>>
>>>>
>>>>(2) init rewrite engine with requested uri /mrktechweb/index.htm
>>>>(1) pass through /mrktechweb/index.htm
>>>>(3) [per-dir /home/users/web/] strip per-dir prefix:
>>>>/home/users/web/mrktechweb/index.htm -> mrktechweb/index.htm
>>>>(3) [per-dir /home/users/web/] applying pattern '(/*)' to uri
>>>>'mrktechweb/index.htm'
>>>>(4) RewriteCond: input='mike' pattern='^mike.*' => matched
>>>>(2) [per-dir /home/users/web/] rewrite mrktechweb/index.htm ->
>>>>/mrktechweb/index.htm
>>>>(1) [per-dir /home/users/web/] internal redirect with
>>>>/mrktechweb/index.htm
>>>>[INTERNAL REDIRECT]
>>>>(2) init rewrite engine with requested uri /mrktechweb/index.htm
>>>>(1) pass through /mrktechweb/index.htm
>>>>(3) [per-dir /home/users/web/] strip per-dir prefix:
>>>>/home/users/web/mrktechweb/index.htm -> mrktechweb/index.htm
>>>>(3) [per-dir /home/users/web/] applying pattern '(/*)' to uri
>>>>'mrktechweb/index.htm'
>>>>(4) RewriteCond: input='mike' pattern='^mike.*' => matched
>>>>(2) [per-dir /home/users/web/] rewrite mrktechweb/index.htm ->
>>>>/mrktechweb/index.htm
>>>>(1) [per-dir /home/users/web/] internal redirect with
>>>>/mrktechweb/index.htm
>>>>[INTERNAL REDIRECT]
>>>>(2) init rewrite engine with requested uri /mrktechweb/index.htm
>>>>(1) pass through /mrktechweb/index.htm
>>>>(3) [per-dir /home/users/web/] strip per-dir prefix:
>>>>/home/users/web/mrktechweb/index.htm -> mrktechweb/index.htm
>>>>(3) [per-dir /home/users/web/] applying pattern '(/*)' to uri
>>>>'mrktechweb/index.htm'
>>>>(4) RewriteCond: input='mike' pattern='^mike.*' => matched
>>>>(2) [per-dir /home/users/web/] rewrite mrktechweb/index.htm ->
>>>>/mrktechweb/index.htm
>>>>(1) [per-dir /home/users/web/] internal redirect with
>>>>/mrktechweb/index.htm
>>>>[INTERNAL REDIRECT]
>>>>
>>>>As you can see this just goes on and on and on.  I gets to the
>>>>point where
>>>>it will completely hang up everything on my server.  Thank you
>>>>to all who
>>>>can help
>>>>
>>>>Mike
>>>>
>>>>
>>>>
>>>>------------------------------------------------------------
>---------
>>>>The official User-To-User support forum of the Apache HTTP
>>>>Server Project.
>>>>See <URL:http://httpd.apache.org/userslist.html> for more info.
>>>>To unsubscribe, e-mail: users-unsubscribe@httpd.apache.org
>>>>   "   from the digest: users-digest-unsubscribe@httpd.apache.org
>>>>For additional commands, e-mail: users-help@httpd.apache.org
>>>>
>>>>
>>>
>>>This message is for the named person's use only. It may contain
>>>confidential, proprietary or legally privileged information. No
>>>confidentiality or privilege is waived or lost by any 
>mistransmission.
>>>If you receive this message in error, please notify the 
>>sender urgently
>>>and then immediately delete the message and any copies of it 
>from your
>>>system. Please also immediately destroy any hardcopies of 
>the message.
>>>You must not, directly or indirectly, use, disclose, 
>>distribute, print,
>>>or copy any part of this message if you are not the intended 
>>recipient.
>>>The sender's company reserves the right to monitor all e-mail
>>>communications through their networks. Any views expressed in this
>>>message are those of the individual sender, except where the message
>>>states otherwise and the sender is authorised to state them to be the
>>>views of the sender's company.
>>>
>>>
>>>
>>>---------------------------------------------------------------------
>>>The official User-To-User support forum of the Apache HTTP 
>>>Server Project.
>>>See <URL:http://httpd.apache.org/userslist.html> for more info.
>>>To unsubscribe, e-mail: users-unsubscribe@httpd.apache.org
>>>   "   from the digest: users-digest-unsubscribe@httpd.apache.org
>>>For additional commands, e-mail: users-help@httpd.apache.org
>>>
>>>
>>>---------------------------------------------------------------------
>>>The official User-To-User support forum of the Apache HTTP 
>>>Server Project.
>>>See <URL:http://httpd.apache.org/userslist.html> for more info.
>>>To unsubscribe, e-mail: users-unsubscribe@httpd.apache.org
>>>   "   from the digest: users-digest-unsubscribe@httpd.apache.org
>>>For additional commands, e-mail: users-help@httpd.apache.org
>>>
>>>
>>
>>---------------------------------------------------------------------
>>The official User-To-User support forum of the Apache HTTP 
>>Server Project.
>>See <URL:http://httpd.apache.org/userslist.html> for more info.
>>To unsubscribe, e-mail: users-unsubscribe@httpd.apache.org
>>   "   from the digest: users-digest-unsubscribe@httpd.apache.org
>>For additional commands, e-mail: users-help@httpd.apache.org
>>
>>
>>
>>
>>---------------------------------------------------------------------
>>The official User-To-User support forum of the Apache HTTP 
>>Server Project.
>>See <URL:http://httpd.apache.org/userslist.html> for more info.
>>To unsubscribe, e-mail: users-unsubscribe@httpd.apache.org
>>   "   from the digest: users-digest-unsubscribe@httpd.apache.org
>>For additional commands, e-mail: users-help@httpd.apache.org
>>
>>
>
>---------------------------------------------------------------------
>The official User-To-User support forum of the Apache HTTP 
>Server Project.
>See <URL:http://httpd.apache.org/userslist.html> for more info.
>To unsubscribe, e-mail: users-unsubscribe@httpd.apache.org
>   "   from the digest: users-digest-unsubscribe@httpd.apache.org
>For additional commands, e-mail: users-help@httpd.apache.org
>
>
>
>---------------------------------------------------------------------
>The official User-To-User support forum of the Apache HTTP 
>Server Project.
>See <URL:http://httpd.apache.org/userslist.html> for more info.
>To unsubscribe, e-mail: users-unsubscribe@httpd.apache.org
>   "   from the digest: users-digest-unsubscribe@httpd.apache.org
>For additional commands, e-mail: users-help@httpd.apache.org
>
>

---------------------------------------------------------------------
The official User-To-User support forum of the Apache HTTP Server Project.
See <URL:http://httpd.apache.org/userslist.html> for more info.
To unsubscribe, e-mail: users-unsubscribe@httpd.apache.org
   "   from the digest: users-digest-unsubscribe@httpd.apache.org
For additional commands, e-mail: users-help@httpd.apache.org


Mime
View raw message