2015-08-22 15:36:07 4388次浏览 4条回答 1 悬赏 10 金钱

首先说说我怎么做的。(高级模板)
1:在 项目根目录/frontend/web下放置名为.htaccess内容的

Options +FollowSymLinks
IndexIgnore */*
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

的文件。
2:在 项目根目录/frontend/config/main.php文件中配置如下代码:

'components' => [
       //基本配置的代码
       'urlManager' => [
       		'enablePrettyUrl' => true,
       		'showScriptName' => false,
       		'rules'=>[
       			'<controller:\w+>/<action:\w+>'=>'<controller>/<action>',
       		],
	    ],
],

最后我的apache服务器的LoadModule rewrite_module modules/mod_rewrite.so这一行配置是有的。

遇到的问题是:访问网站首页以外其他文件是出现404错误
我是这样访问的。
若:域名是mi.com
http://mi.com 可以访问
http://mi.com/site/signup 报404错误
因为原本是这样的http://mi.com/frontend/web/index.php?r=site/signup,我在apache中设置了网站根目录/frontend/web为根目录,网址变成这样http://mi.com/index.php?r=site/signup
现在我隐藏index.php之后应当是http://mi.com/site/signup却没办法访问
恳请各位可以花2分钟看一下!谢谢大家了!

最佳答案

  • 墨轩娣 发布于 2015-08-22 15:59 举报

    修改apache配置文件:

    去掉"LoadModule rewrite_module modules/mod_rewrite.so"前的"#"
    将相对应目录的"AllowOverride None"改为"AllowOverride All"
    "<VirtualHost *:80>……</VirtualHost>"中的"AllowOverride None"改为"AllowOverride All"(或者删除)
    重启apache
    
    2 条回复
    回复于 2015-08-22 16:04 回复

    搞定了!可能是因为缓存的问题!谢谢大家了!

    回复于 2015-08-24 08:44 回复

    楼上棒棒的!

    觉得很赞
您需要登录后才可以回答。登录 | 立即注册
奔跑的孩子
实习生

奔跑的孩子

注册时间:2015-08-22
最后登录:2015-10-03
在线时长:0小时56分
  • 粉丝1
  • 金钱15
  • 威望0
  • 积分15

热门问题