Как сделать внутреннюю маскировку URL (оставьте только доменное имя) - PullRequest
0 голосов
/ 09 апреля 2020

Как я могу сделать полное маскирование URL, например мой сайт выглядит так:

https://website.com

Я использую Cake PHP в качестве фреймворк в цифровой океанской капле, который использует (Apache2 / Ubuntu 18.04)

путь к каталогу Cake PHP: / var / www/html/websiteDir

Когда я посещаю мой веб-сайт, фреймворк делает ссылку выглядит динамически c например:

https://website.com/Controller/View

Я хочу, чтобы пользователь нажимал на ссылки, но показывал только доменное имя, я не я не хочу, чтобы он видел полный URL

Я принудительно перенаправляю https с http, используя файл .htaccess (PATH: / var / www/html/.htaccess)

<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 или файл моего виртуального хоста приветствуются, пожалуйста, не стесняйтесь

1 Ответ

0 голосов
/ 09 апреля 2020

Полагаю, вы используете метод $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.

...