请教UrlRewrite的404问题

#1 Pioneer

各位好!
按照版内的例子想设置url重写,但一直不成功,老是提示404错误。
同时,下载教程中的例子,也是无法配置成功,请问这是什么原因,还需要做哪些配置?
教程链接:http://www.speedphp.com/thread-3728-1-1.html


2012-12-03 15:46:28

#2 jake

404错误是因为你的服务器不支持rewrite,建议按手册配置一下你的服务器,或者找空间提供商开启。

2012-12-03 16:47:13

#3 Pioneer

原来服务器的AllowOverride选项配置错误,谢谢!

2012-12-03 17:02:42

#4 清源

我都配置了,包括apache也能正常解析htaccess了。但是还是404,提示这个:
The requested URL /Documents/NetBeansProjects/UUGU/index.php was not found on this server.
我感觉按照你给的htaccess有问题还是怎么回事呢?

2012-12-08 18:37:33

#5 清源

清源 发表于 2012-12-8 18:37
我都配置了,包括apache也能正常解析htaccess了。但是还是404,提示这个:
The requested URL /Documents/N ...
if (!defined('UUGU')) { exit(1);}
// 定义框架目录
define("SP_PATH",APP_PATH."/include/SpeedPHP");
// 默认时区设置
@date_default_timezone_set('PRC');
// 载入用户自定义的函数文件
define("__SKIN_NAME",'default');

// 通用的全局配置
$spConfig = array(
        "db" => array(
            'host' => 'localhost',
            'port'=>3306,
            'login' => 'root',
            'password' => 'zhima',
            'database' => 'uugu',
            'prefix'=>'nss_',
        ),
        'view' => array(
                'enabled' => TRUE, // 开启视图
                'config' =>array(
                        'template_dir' => APP_PATH.'/template', // 模板目录
                        'compile_dir' => APP_PATH.'/tmp', // 编译目录
                        'cache_dir' => APP_PATH.'/tmp', // 缓存目录
                        'left_delimiter' => '<{',  // smarty左限定符
                        'right_delimiter' => '}>', // smarty右限定符
                ),
            'debugging' => FALSE,
        //'auto_display' => TRUE, // 是否使用自动输出模板功能
        //'auto_display_sep' => '/', // 自动输出模板的拼装模式,/为按目录方式拼装,_为按下划线方式,以此类推
        //'auto_display_suffix' => '.html', // 自动输出模板的后缀名
        ),
        'url' => array( // URL设置
                'url_path_info' => FALSE, // 是否使用path_info方式的URL
        ),
        'launch' => array(
            'router_prefilter' => array(
                array('spUrlRewrite', 'setReWrite'), // 对路由进行挂靠,处理转向地址
                array('spAcl', 'mincheck') // 开启有限的权限控制               
            ),
            'function_url' => array(
                array("spUrlRewrite", "getReWrite"), // 对spUrl进行挂靠,让spUrl可以进行Url_ReWrite地址的生成
            ),
        ),
            'ext'=>array(
                //无权限时跳转
            'spAcl'=>array(
            'prompt'=>array('m_users','acljump'),
            ),
            // 以下是Url_ReWrite的设置
            'spUrlRewrite' => array(
               'hide_default' => false, // 隐藏默认的main/index名称,但这前提是需要隐藏的默认动作是无GET参数的
                 'args_path_info' => false, // 地址参数是否使用path_info的方式,默认否
                'suffix' => '.html',
                'sep' => '-',
                'map' => array(         
                ),
                'args' => array(
                        
                ),
        ),
        ),
      'dispatcher_error'=>"import(APP_PATH.'/404.html'); exit();",
); 这是配置文件,有什么错误吗??







2012-12-08 18:40:03

#6 jake

例子里面下载代码来试试就知道了

http://www.speedphp.com/thread-3728-1-1.html


404就是apache配置不对,解释一下,手册里面介绍的htaccess设置,是将“全部404转发到index.php”,所以只要index.php存在并目录对了,是不可能看到404的。

'dispatcher_error'=>"import(APP_PATH.'/404.html'); exit();", 这句先不加,等你配置正常了再加进去吧。

2012-12-08 18:58:00

#7 清源

找到问题了,我用的是Wamp,问题确实出在.htaccess上面,改成这样就能解析了。
BEGIN WinBlog

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /UUGU/index.php?$1 [L]

END WinBlog
当然我这是本地开发特殊情况,搭载服务其上就是你模板中那样的了。

2012-12-11 22:50:36