Appache RewriteRule问题

thrive_li 2012-09-29 10:50:41
我想在地址栏里输入 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

<Directory />
Options FollowSymLinks
AllowOverride All
Order deny,allow
Deny from all
</Directory>

<Directory "C:/Program Files/Apache Software Foundation/Apache2.2/htdocs">
Options Indexes FollowSymLinks
AllowOverride All
Order allow,deny
Allow from all

</Directory>

<VirtualHost *:80>
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
</VirtualHost>
...全文
222 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
清晨洗澡的猪 2013-09-17
  • 打赏
  • 举报
回复
楼主您好,我看了你之前关于点击按钮添加input控件的帖子 有些问题想请教,麻烦可以留下QQ什么的么 或者相互关注,发私信?
thrive_li 2012-09-29
  • 打赏
  • 举报
回复
另外我这httpd.conf的相关配置有错吗?
thrive_li 2012-09-29
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 的回复:]
没有找到页面,你是不是用的框架,如果是的话看一下路由正则匹配
[/Quote]

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

请教下路由正则匹配,如何查看,在哪配置?
我用的环境是windows+PHP集成环境CoreAMP.exe
皓月长空 2012-09-29
  • 打赏
  • 举报
回复
没有找到页面,你是不是用的框架,如果是的话看一下路由正则匹配
thrive_li 2012-09-29
  • 打赏
  • 举报
回复
第一次发关于php的帖子,老半天了,竟然一个回复的人都没,哎
  • 打赏
  • 举报
回复

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

这两句是做啥的,不怕麻烦呀,直接删除就好了,还敢加flag L...
thrive_li 2012-09-29
  • 打赏
  • 举报
回复
唉,又是自己搞定了,万能的坛子,没起作用啊
thrive_li 2012-09-29
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 的回复:]
首先,把你的网站根目录定位成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]
[/Quote]

我把hconf文件里的删除了,然后我的.htaccess文件这么写的,还是不行
<IfModule mod_rewrite.c>
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]
</IfModule>
thrive_li 2012-09-29
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 的回复:]
没有找到页面,你是不是用的框架,如果是的话看一下路由正则匹配
[/Quote]

我routes.php是这样子的:
<?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):
RewriteRule /user_detail/([0-9]+)/([0-9]+)$ /user_detail.php?id=%1&contents_id=%2 [QSA,L]

21,887

社区成员

发帖
与我相关
我的任务
社区描述
从PHP安装配置,PHP入门,PHP基础到PHP应用
社区管理员
  • 基础编程社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧