简体   繁体   中英

htaccess hide file name from url

I need to hide the profile.php from appearing in the URL. So here's what I have:

The URL I am accessing:

sampleuser.domain.com/profile.php

How I get the user 'sampleuser':

$url = "//".$_SERVER['HTTP_HOST'].$_SERVER['PHP_SELF'];

/*this will give me $url = '//sampleuser.domain.com/profile.php'; */

function get_user_from_url($url)
{
    if (strpos($url , 'www.') !== false) {
        preg_match('/\/\/www.(.*?)\.domain/', $url, $val);
    }
    else
    {
        preg_match('/\/\/(.*?)\./', $url, $val);
    }
    return $val[1];
}

$user = get_user_from_url($url);
echo $user;

I just need to hide the profile.php , also the thing to consider is if we hide the profile.php , it might conflict with the index.php.

But luckily we will only access the index.php if the URL is only domain.com (without user).

I'm low on htaccess knowledge, can anyone give me the direct answer, and I would be very appreciative if you can add some explanation, it'll give me a head start on learning htaccess .

So basically, what I was making is a dynamic subdomain. So I added a subdomain on my DNS: *.domain.com

then added these on my htaccess

<IfModule mod_rewrite.c>
#Options +FollowSymLinks

RewriteEngine On
RewriteBase /
RewriteCond %{HTTP_HOST} !www.domain.com$ [NC]
RewriteCond %{HTTP_HOST} ^(www.)?([a-z0-9-]+).domain.com [NC]
RewriteRule ^/?$ /agent/index.php?user=%2 [L]
</IfModule>

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM