我有一个网站,其中我想要SiteURL/about.html.
我更改了config/main.php
中的代码,但是当我登录到网站时,当我导航到任何其他网页时,会话已过期。
如果在'showScriptName'=>false
文件中对此代码config/main.php
发表评论,那么它的工作正常,现在我的登录会话已保存,但我们尚未过期,但现在我的网址变得像这样SiteURL/index.php/about.html
但我想要像about.html.
我还有另一个游戏选项控制器,其URL类似于:http://www.demo.com/index.php/Games/info/9.html但我希望像这个“黑钩”中的SiteURL / black-hook.html这样的URL是游戏的名称。
'urlManager'=>array(
'urlFormat'=>'path',
'showScriptName'=>FALSE,
'rules'=>array(
'<action>'=>'site/<action>',
'<view>'=>'array('site/page')',
'<controller:\w+>/<id:\d+>'=>'<controller>/view',
'<controller:\w+>/<action:\w+>/<id:\d+>'=>'<controller>/<action>',
'<controller:\w+>/<action:\w+>'=>'<controller>/<action>'
),
),
* SiteURL = http://www.demo.com
答案 0 :(得分:0)
首先将.html添加到您的页面中,您需要在urlManager中使用伪url后缀选项
可以通过将'urlSuffix' =>'.html'
添加到您的urlManager
配置中来完成此操作
'urlManager'=>array(
'urlFormat'=>'path',
'showScriptName'=>false,
'urlSuffix'=>'.html',
'rules'=>array(
'<action>'=>'site/<action>',
'<view>'=>'site/page',
'<controller:\w+>/<id:\d+>'=>'<controller>/view',
'<controller:\w+>/<action:\w+>/<id:\d+>'=>'<controller>/<action>',
'<controller:\w+>/<action:\w+>'=>'<controller>/<action>'
),
),
其次,除了在此处更改配置外,还要在URL中隐藏index.php(称为条目脚本),您需要更改apache / nginx服务器中的配置。
使用以下内容创建文件/.htaccess并保存
RewriteEngine on
# if a directory or a file exists, use it directly
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
# otherwise forward it to index.php
RewriteRule . index.php
接下来验证apache配置文件中的app目录是否有AllowOveride All
您还可以使用Directory元素将上述配置直接添加到apache配置文件,而不使用.htaccess。
注意:为此,您需要在apache配置中启用重写引擎,您可以使用以下命令集来执行此操作
a2enmod rewrite
最后在
之后重启apache2/etc/init.d/apache2 restart
或
service apache2 restart