我已按照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配置文件。
答案 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,
]