htaccess从网址隐藏文件名

时间:2018-03-06 04:04:16

标签: php .htaccess

我需要隐藏profile.php不会出现在网址中。 所以这就是我所拥有的:

我正在访问的网址:

sampleuser.domain.com/profile.php

我如何获得用户' 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;

我只需要隐藏profile.php,还要考虑的是如果我们隐藏profile.php,它可能与index.php冲突。

但幸运的是,如果URL只是domain.com(没有用户),我们只会访问index.php。

我对htaccess知识很低,任何人都可以给我直接答案,如果你能补充一些解释,我会非常感激,它会给我一个先入为主的学习htaccess

1 个答案:

答案 0 :(得分:0)

所以基本上,我所做的是一个动态子域。所以我在DNS上添加了一个子域名:      * .domain.com

然后在我的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>