Mobile app version of vmapp.org
Login or Join
Vandalay111

: URL rewrite to another folder and file for specific requests I have following directory structure on my local LAMP: www basic app router.php public index.html .htaccess and I can access my

@Vandalay111

Posted in: #Apache2 #Htaccess #ModRewrite #UrlRewriting

I have following directory structure on my local LAMP:


www

basic

app

router.php

public

index.html
.htaccess





and I can access my index page with localhost/basic/public/ and I am not using any virtual hosts.

Now I am trying to do two things:


Instead of localhost/basic/public/ URL should look like
localhost/basic/ to access homepage.
All requests to /api/ should be redirected to router.php. For
example if I make a request like /api/user/login it should go to
app/router.php where I can execute specific code according to
request for API.


To achieve this I was trying do something like following in .htaccess file but its not working:

RewriteEngine On

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_URI} ^/api/ [NC]
RewriteRule . ../app/router.php [NC,L]


Also I am not sure if we can use relative paths in RewriteRule.

10.01% popularity Vote Up Vote Down


Login to follow query

More posts by @Vandalay111

1 Comments

Sorted by latest first Latest Oldest Best

 

@Nimeshi995

First, I'd move your .htaccess file to /www/.htaccess. Apache only "executes" .htaccess files it finds along the path of the request. Requests like /api/... will only "execute" an .htaccess in the docroot (/www) and will not "find" nor "execute" your .htaccess in /www/basic/app/public/.htaccess.

Having done that, for (1), do something like

RewriteRule ^basic/$ basic/public/ [NC,L]


For (2), do something like

RewriteRule ^api/(.*) basic/app/router.php?_REQUEST= [NC,L]

10% popularity Vote Up Vote Down


Back to top | Use Dark Theme