在Yii2中从URL隐藏Web

时间:2015-01-26 16:16:31

标签: url-rewriting yii2

我已按照this question中所述的回答。我按照建议将应用程序文件和文件夹移到了一个级别。

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

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

配置/ web.php

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

网络文件夹中的htaccess文件

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

现在我的网址是example.com/web/controller/action

如何从上方的网址中隐藏网页?我无法访问apache配置文件。

2 个答案:

答案 0 :(得分:3)

我的回答仍然存在:)。

你在正确的轨道上,将1个目录移动到更低的位置。现在你在public_html中复制了整个yii2应用程序,你应该将它向下移动1个目录。然后在public_html中复制web中的所有内容。通过执行此操作,所有脚本都不会暴露给Web,只会显示1个index.php,这是设置它的正确方法。

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

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

答案 1 :(得分:0)

您可以尝试添加config \ web

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

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