me again, sorry, i did one more mistake in the first RewriteCond, it should be like this : # if folder exists as a master domain RewriteCond /var/www/hosts/${lowercase:%{SERVER_NAME}}/web -d # do the magic RewriteRule ^/(.*)$ /var/www/hosts/${lowercase:%{SERVER_NAME}}/web/$1 [L] # else redirect to the master domain RewriteCond ${vhost:%1} ^(/.*)$ RewriteRule ^(.*) http://%2/$1 [QSA,L,R=301]Now i solved another permission problem on vhost.map and it almost work, though in my rewritelog i have this line for the vhost.map lookup :
cache lookup OK: map=vhost[txt] key= -> val= empty key and value?!? Greg gregory duchesnes a écrit :
oups, i don't understand you logic either ;) ok i'll try to make things clearer What i'm trying to do is this :- check if the folder /var/www/hosts/${lowercase:%{SERVER_NAME}}/web exists- if yes rewrite the request to this folder- else if SERVER_NAME is found in the vhost.map (as first entry) then redirect request to the master domain (vhost.map second entry)I did some corrections and it should look like something like this, it's far from working but at least the fisrst part seems to work# if folder exists as a master domain RewriteCond /var/www/hosts/${lowercase:%{SERVER_NAME}}/web ^(.+)$ # do the magic RewriteRule ^/(.*)$ /var/www/hosts/${lowercase:%{SERVER_NAME}}/web/$1 [L] # else redirect to the master domain RewriteCond ${vhost:%1} ^(/.*)$ RewriteRule ^(.*) http://%2/$1 [QSA,L,R=301]Hope it's clearer (might not be clever though) and that i won't have any grabage characters againGreg Joshua Slive a écrit :On 12/6/05, gregory duchesnes <gregory@xxxxxxxxxxxxx> wrote:Anyone's got an idea, i'm still stuck on this one...# define the map file RewriteMap vhost txt:/www/conf/vhost.map # deal with aliases as above RewriteCond %{REQUEST_URI} ^/icons/ RewriteCond %{REQUEST_URI} ^/cgi-bin/ # if folder exists as a master domain RewriteCond /var/www/hosts/${lowercase:%{SERVER_NAME}}/web ^(.+)$ # do the magicRewriteRule ^/(.*)$ /www/hosts/${lowercase:%{SERVER_NAME}}/web/$1 [S=1]|# else redirect to the master domain RewriteCond ${vhost:%1} ^(/.*)$ RewriteRule ^(.*) http://%1/$1 [QSA,L,R=301]I don't really understand the logic in the above. What I think you want is something more like this: # First canonicalize the hostname using the vhost alias map and external redirects# If the lower-cased server-name isn't in the map, then don't do anythingRewriteCond ${vhost:${lowercase:%{SERVER_NAME}}|default} !=defaultRewriteRule (.*) http://${vhost:${lowercase:%{SERVER_NAME}:%1}$1 [R=301,L]# Now interpolate the canonical vhosts, excluding some directories RewriteCond %{REQUEST_URI} ^/icons/ RewriteCond %{REQUEST_URI} ^/cgi-bin/ RewriteRule ^/(.*)$ /www/hosts/${lowercase:%{SERVER_NAME}}/web/$1 But in the end, you're really going to have to find your way through the RewriteLog. There is no other way to make sure you know what is happening. Joshua. ---------------------------------------------------------------------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@xxxxxxxxxxxxxxxx " from the digest: users-digest-unsubscribe@xxxxxxxxxxxxxxxx For additional commands, e-mail: users-help@xxxxxxxxxxxxxxxx---------------------------------------------------------------------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@xxxxxxxxxxxxxxxx " from the digest: users-digest-unsubscribe@xxxxxxxxxxxxxxxx For additional commands, e-mail: users-help@xxxxxxxxxxxxxxxx
--------------------------------------------------------------------- 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@xxxxxxxxxxxxxxxx " from the digest: users-digest-unsubscribe@xxxxxxxxxxxxxxxx For additional commands, e-mail: users-help@xxxxxxxxxxxxxxxx