【问题标题】:How to do intern URL masking ( Leave only the domain name )如何做实习网址屏蔽(只留下域名)
【发布时间】:2020-04-09 14:56:54
【问题描述】:

如何进行完整的 URL 屏蔽,例如我的网站如下所示:

https://website.com

我在使用 (Apache2 / Ubuntu 18.04) 的数字海洋水滴中使用 CakePHP 作为框架

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

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

https://website.com/Controller/View

我想让用户点击链接但只显示域名,我不希望他看到完整的 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 文件或我的虚拟主机文件进行任何改进,请随意

【问题讨论】:

  • 您不希望他们在页面内容或地址栏中看到 URL?

标签: apache .htaccess cakephp dns ubuntu-18.04


【解决方案1】:

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-11-16
    • 1970-01-01
    • 2017-07-16
    • 2015-07-20
    • 2017-07-29
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多