Search code examples
php.htaccessurl-rewritingserver-variables

Implementing url rewriting using .htaccess file without affecting $_SERVER['SCRIPT_NAME']


I want to setup a SaaS(Software as a Service) version of my ERP product. Each of the user who purchases the product can access the product using a url which will be specific for each user (For Example: erp.com/user1/). But there will not be a physical folder created for each user, it will be a virtual one and there will be a single copy of the program file will be there and which will be in the root directory.

I have tried with a htaccess file and here with include the code i have written, it is not generic solution it will work only for the case of 'folder1'

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteRule ^folder1/(.*)$ /$1 [QSA]
</IfModule> 

The problem is when I implement the $_SERVER['SCRIPT_NAME'] returns 'erp.com/', instead of this i need to get 'erp.com/folder1/' also please suggest me a generic solution for the problem.

Thank you.


Solution

  • Instead of $_SERVER["SCRIPT_NAME"] you need to use:

    $_SERVER["REQUEST_URI"]
    

    that will have value:

    /folder1/foobar
    

    Generic Rule:

    RewriteEngine On
    
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule ^[^/]+/(.*)$ /$1 [L]