如何做 intern URL masking (只留下域名)

How to do intern URL masking ( Leave only the domain name )

我怎样才能做一个完整的 URL 屏蔽,例如我的网站看起来像这样:

https://website.com

我在使用 (Apache2 / Ubuntu 18.04)

的数字海洋水滴中使用 CakePHP 作为框架

CakePHP 目录的路径:/var/www/html/websiteDir

当我访问我的网站时,框架使 link 看起来动态,例如:

https://website.com/Controller/View

我想让用户点击 links 但只显示域名,我不想让他看到完整的 URL

我正在使用 .htaccess 文件(路径:/var/www/html/.htaccess)强制从 http 进行 https 重定向

<IfModule mod_rewrite.c>
        Options +FollowSymlinks
        RewriteEngine On
        RewriteBase /
        RewriteCond %{HTTP_HOST} ^website.com [OR] [NC]
        RewriteCond %{HTTP_HOST} ^www.website.com [NC]
        RewriteRule .* websiteDir [R=301,L]
</IfModule>

欢迎对我的 .htaccess 文件或虚拟主机文件进行任何改进,请随意

我猜您正在使用 $this->Html->link() 方法来创建链接。当您提供单个参数(url)时,例如:

echo $this->Html->link(['controller' => 'Controller', 'action' => 'view']);

// Result:
// <a href="https://website.com/Controller/View">
//     https://website.com/Controller/View
// </a>

使用两个参数,第一个是要显示的文本,第二个是 url,这将导致:

echo $this->Html->link(
    Router::url('/', true),
    ['controller' => 'Controller', 'action' => 'view']
);

// Result:
// <a href="https://website.com/Controller/View">
//     https://website.com/
// </a>

并且用户只会看到域。路由器可用于 use Cake\Routing\Router.