4

我是 Yii 框架的新手。我在配置文件中取消了 url 管理器的注释,并得到了一个这样的 url 方案:

http://localhost/mysite/index.php/displayAll

我不想要 url 中的 index.php。所以我想要一个这样的网址

http://localhost/mysite/displayAll

要做到这一点,我该怎么做。我确实玩过 url 管理器和一些 htaccess,但没有任何进展。

请帮忙

4

4 回答 4

9

在你的 .htaccess 你应该有这个:

RewriteEngine on

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

然后你必须将 urlManager 组件添加到你的主配置文件中:

array(
    ......
    'components'=>array(
        ......
        'urlManager'=>array(
            'urlFormat'=>'path',
            'showScriptName'=>false,
            'rules'=>array(
                'pattern1'=>'route1',
                'pattern2'=>'route2',
                'pattern3'=>'route3',
            ),
        ),
    ),
);

注意'showScriptName'=>false,这将从生成的 URL 中隐藏 'index.php'。

要查找有关 Yii 的 URL 管理器的所有信息,请查看 Yii 文档中的这个主题: http ://www.yiiframework.com/doc/guide/1.1/en/topics.url

于 2012-08-04T12:33:06.680 回答
3

尝试:

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^/?mysite/(.*)$ /mysite/index.php/$1 [L]
于 2012-08-04T11:42:35.797 回答
0

在 httpd.conf 中寻找,

     LoadModule rewrite_module modules/mod_rewrite.so 

(如果尚未删除,请从行首删除 #。)

              OR 
     In wamp click on wampserver-> Apache -> Apache Modules and enable rewrite_module.

在 index.php 所在的目录中创建 .htaccess,然后粘贴以下代码:

IndexIgnore */*
RewriteEngine on

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d

RewriteRule . index.php

并在 protected/config/main.php

 'urlManager' => array(
    'urlFormat' => 'path',
    'showScriptName' => false,
    'rules' => array(
       '<controller:\w+>/<id:\d+>' => '<controller>/view',
       '<controller:\w+>/<action:\w+>/<id:\d+>' => '<controller>/<action>',
       '<controller:\w+>/<action:\w+>' => '<controller>/<action>',
     ),
 ),

如果仍然没有得到干净的 url,请转到虚拟主机配置文件“httpd-vhosts”以防你正在使用它,然后粘贴到你的配置中,

 <Directory "C:/wamp/www">
    AllowOverride All 
 </Directory> 
于 2013-08-20T12:09:41.530 回答
0

在 IIS 7、IIS 7.5、IIS 8、IIS 8.5、IIS 10 上

  1. 确保您已安装URL 重写模块。可以在这里找到:http ://www.iis.net/downloads/microsoft/url-rewrite

  2. config/main.phpconfig/web.php中删除注释

        'urlManager' => [
        'enablePrettyUrl' => true,
        'showScriptName' => false,
        'rules' => [
        ],
    ],
    
  3. 在web目录basic/web/ web.config新建文件并添加system.webServer

    <directoryBrowse enabled="false" />
    
    <rewrite>
        <rules>
        <rule name="Hide Yii Index" stopProcessing="true">
            <match url="." ignoreCase="false" />
            <conditions>
            <add input="{REQUEST_FILENAME}" matchType="IsFile" ignoreCase="false" negate="true" />
            <add input="{REQUEST_FILENAME}" matchType="IsDirectory" ignoreCase="false" negate="true" />
            </conditions>
                <action type="Rewrite" url="index.php" appendQueryString="true" />
        </rule> 
        </rules>
    </rewrite>
    

示例结果:http://localhost/basic/web/site/contact

于 2016-07-17T17:32:43.413 回答