我是 Yii 框架的新手。我在配置文件中取消了 url 管理器的注释,并得到了一个这样的 url 方案:
http://localhost/mysite/index.php/displayAll
我不想要 url 中的 index.php。所以我想要一个这样的网址
http://localhost/mysite/displayAll
要做到这一点,我该怎么做。我确实玩过 url 管理器和一些 htaccess,但没有任何进展。
请帮忙
我是 Yii 框架的新手。我在配置文件中取消了 url 管理器的注释,并得到了一个这样的 url 方案:
http://localhost/mysite/index.php/displayAll
我不想要 url 中的 index.php。所以我想要一个这样的网址
http://localhost/mysite/displayAll
要做到这一点,我该怎么做。我确实玩过 url 管理器和一些 htaccess,但没有任何进展。
请帮忙
在你的 .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
尝试:
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^/?mysite/(.*)$ /mysite/index.php/$1 [L]
在 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>
在 IIS 7、IIS 7.5、IIS 8、IIS 8.5、IIS 10 上
确保您已安装URL 重写模块。可以在这里找到:http ://www.iis.net/downloads/microsoft/url-rewrite
从config/main.php或config/web.php中删除注释
'urlManager' => [
'enablePrettyUrl' => true,
'showScriptName' => false,
'rules' => [
],
],
在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>