首页 >后端开发 >php教程 >Appache RewriteRule问题

Appache RewriteRule问题

WBOY
WBOY原创
2016-06-23 14:21:561118浏览

我想在地址栏里输入 http://web/cms/user_detail/74/41245/
然后将其重定向到 http://web/cms/user_detail.php?id=74&contents_id=41245
可是RewriteRule没起作用,报404错误

Not Found
The requested URL /cms/user_detail/74/41254/ was not found on this server.

这是为什么呢?

httpd.conf的相关配置如下,请问还缺了什么配置吗?


---------------------------------------------------------------------------



LoadModule rewrite_module modules/mod_rewrite.so


    Options FollowSymLinks
    AllowOverride All
    Order deny,allow
    Deny from all



    Options Indexes FollowSymLinks
    AllowOverride All 
    Order allow,deny
    Allow from all




    ServerAdmin mike@sina.com
    DocumentRoot D:\webroot
    DirectoryIndex index.html index.htm index.php
    ServerName web  
RewriteEngine on
RewriteCond %{REQUEST_URI} ^/user_detail/([0-9]+)/([0-9]+)/?$
RewriteRule ^(.*)$ /user_detail.php?id=%1&contents_id=%2
 


回复讨论(解决方案)

第一次发关于php的帖子,老半天了,竟然一个回复的人都没,哎

没有找到页面,你是不是用的框架,如果是的话看一下路由正则匹配

没有找到页面,你是不是用的框架,如果是的话看一下路由正则匹配

看来是高人啊,拜一个先,我用了cake php

请教下路由正则匹配,如何查看,在哪配置?
我用的环境是windows+PHP集成环境CoreAMP.exe

另外我这httpd.conf的相关配置有错吗?

首先,把你的网站根目录定位成cms,要不就不要用.conf文件,在cms文件夹中用.htaccess

然后再试试这个(删除你原来的cond和rule):

RewriteRule /user_detail/([0-9]+)/([0-9]+)$ /user_detail.php?id=%1&contents_id=%2 [QSA,L]

没有找到页面,你是不是用的框架,如果是的话看一下路由正则匹配

我routes.php是这样子的:
  $Route->connect('/', array('controller' => 'top', 'action' => 'index'));
  $Route->connect('/pages/*', array('controller' => 'pages', 'action' => 'display'));
  $Route->connect('/tests', array('controller' => 'tests', 'action' => 'index'));
?>

要如何修改?

首先,把你的网站根目录定位成cms,要不就不要用.conf文件,在cms文件夹中用.htaccess

然后再试试这个(删除你原来的cond和rule):

XML code

RewriteRule /user_detail/([0-9]+)/([0-9]+)$ /user_detail.php?id=%1&contents_id=%2 [QSA,L]

我把hconf文件里的删除了,然后我的.htaccess文件这么写的,还是不行

    RewriteEngine On
    RewriteCond %{HTTPS} on [NC]
    RewriteRule (.*) http://%{SERVER_NAME}%{REQUEST_URI} [R,L]
    RewriteRule /user_detail/([0-9]+)/([0-9]+)$ /user_detail.php?id=%1&contents_id=%2 [QSA,L]

唉,又是自己搞定了,万能的坛子,没起作用啊


RewriteCond %{HTTPS} on [NC]  RewriteRule (.*) http://%{SERVER_NAME}%{REQUEST_URI} [R,L]

这两句是做啥的,不怕麻烦呀,直接删除就好了,还敢加flag L...

楼主您好,我看了你之前关于点击按钮添加input控件的帖子
有些问题想请教,麻烦可以留下QQ什么的么
或者相互关注,发私信?

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn