在 Yii2 中隐藏来自 URL 的网页

Hide web from URL in Yii2

我已遵循 this question 中描述的答案。我已按照建议将应用程序文件和文件夹移动到上一层。

public_html/basic/web,config etc..public_html/web,config etc..

通过修改这些配置从 url 中删除了 index.php:

config/web.php

'urlManager' =>[
        'enablePrettyUrl' => true,
        'showScriptName' => false,
    ],

web 文件夹中的 htaccess 文件

RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . index.php

所以现在我的 url 是 example.com/web/controller/action

如何从上面的 url 中隐藏网页?我无权访问 apache 配置文件。

我的回答仍然有效:).

您走对了,将所有内容下移 1 个目录。现在你在 public_html 中复制了整个 yii2 应用程序,你应该将它向下移动 1 个目录。然后将您在网络上的所有内容复制到 public_html。通过这样做,您的所有脚本都不会暴露在网络上,只有 1 个 index.php 会暴露,这是设置它的正确方法。

这也是 yii 的主要教程,告诉你如何去做 https://github.com/yiisoft/yii2/blob/master/docs/guide/tutorial-shared-hosting.md

不要害怕这样做,服用蓝色药丸(或者它是红色的):)。

你可以尝试加入config\web

$baseUrl = str_replace('/web', '', (new Request)->getBaseUrl());

$config = [
'defaultRoute' => $baseUrl,
'components' => [
    'request' => [
        'baseUrl' => $baseUrl,
    ]
],
'urlManager' => [
    'baseUrl' => $baseUrl,
 ]