发布
社区首页 >问答首页 >在YII2 basic应用程序中从url隐藏'web‘文件夹时的问题

在YII2 basic应用程序中从url隐藏'web‘文件夹时的问题
EN

Stack Overflow用户
提问于 2015-12-26 08:24:10
回答 3查看 1.8K关注 0票数 0

YII2 basic应用程序安装在'ims‘folder.The链接的本地主机下,如下所示

http://192.168.0.99/ims/web/ (主页)

http://192.168.0.99/ims/web/index.php?r=site%2Fabout (关于我们页面)

到目前为止我所做的是。

( 1)在web/..htaccess文件中

代码语言:javascript
代码运行次数:0
复制
Options +FollowSymLinks
IndexIgnore */*
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . index.php

( 2)根.htaccess

代码语言:javascript
代码运行次数:0
复制
Options -Indexes
RewriteEngine on
RewriteRule ^(.*)$ web/$1 [L]

3)在config/web.php中

代码语言:javascript
代码运行次数:0
复制
'components' => [
        'urlManager' => [
            'class' => 'yii\web\UrlManager',
            'enablePrettyUrl' => true,
            'showScriptName'  => false,
            'baseUrl' => '/',
        ],

这解决了以下问题:

1)现在的链接是SEO友好的

2) index.php现在没有显示在url中

3)主页可以用http://192.168.0.99/ims/访问。

发布:-有关、联系人和登录链接现在更改为

http://192.168.0.99/site/about

http://192.168.0.99/site/contact

http://192.168.0.99/site/login

它遗漏了url 'ims‘中的基本文件夹名。对此有什么建议或想法吗?

注意:-我不希望使用Apache配置来实现这一点,也不希望将web文件夹的内容移到外部。我希望在不改变YII2 basic应用程序的结构的情况下,从url隐藏'web‘。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2015-12-30 10:40:15

我在这里回答我自己的问题:-

我唯一需要做的改变就是

代码语言:javascript
代码运行次数:0
复制
'baseUrl' => '/', to 'baseUrl' => '/ims',

所以修改后的代码看起来像

代码语言:javascript
代码运行次数:0
复制
    'components' => [
        'urlManager' => [
            'class' => 'yii\web\UrlManager',
            'enablePrettyUrl' => true,
            'showScriptName'  => false,
            'baseUrl' => '/ims',
        ],

现在,我可以浏览所有的网页没有文本‘网页’。这是在不进行任何apache配置或移动根目录中的web文件夹的情况下实现的。:)

票数 1
EN

Stack Overflow用户

发布于 2018-03-31 09:50:48

到目前为止,这对我终于起作用了

1.在web/..htaccess文件

代码语言:javascript
代码运行次数:0
复制
Options +FollowSymLinks
IndexIgnore */*
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . index.php

2.然后在根.htaccess

代码语言:javascript
代码运行次数:0
复制
<code>
    Options -Indexes
    RewriteEngine on
    RewriteRule ^(.*)$ web/$1 [L]
</code>

3.在config/web.php

代码语言:javascript
代码运行次数:0
复制
<code>
    use \yii\web\Request;
    $baseUrl = str_replace('/web', '', (new Request)->getBaseUrl());
    'components' => [
        'request' => ['baseUrl' => $baseUrl,],
        'urlManager' => [
            'class' => 'yii\web\UrlManager',
            'enablePrettyUrl' => true,
            'showScriptName'  => false,
        ],
</code>

注意:只需删除config/web.php中的‘baseUrl’=‘/’

票数 3
EN

Stack Overflow用户

发布于 2016-06-24 12:16:07

  1. 在web/..htaccess文件中

代码语言:javascript
代码运行次数:0
复制
Options +FollowSymLinks
IndexIgnore */*
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . index.php
  1. 根.htaccess

代码语言:javascript
代码运行次数:0
复制
Options -Indexes
RewriteEngine on
RewriteRule ^(.*)$ web/$1 [L]
  1. 在config/web.php中

代码语言:javascript
代码运行次数:0
复制
use \yii\web\Request;
$baseUrl = str_replace('/web', '', (new Request)->getBaseUrl());

'components' => [
        'request' => [
            'baseUrl' => $baseUrl,
        ],
        'urlManager' => [
            'class' => 'yii\web\UrlManager',
            'enablePrettyUrl' => true,
            'showScriptName'  => false,
            'baseUrl' => '/',
        ],
票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34469693

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档