欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  后端开发

Appache RewriteRule问题

程序员文章站 2022-04-11 09:48:27
...
我想在地址栏里输入 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什么的么
或者相互关注,发私信?