Heim  >  Artikel  >  Backend-Entwicklung  >  Appache RewriteRule问题

Appache RewriteRule问题

WBOY
WBOYOriginal
2016-06-23 14:21:561102Durchsuche

我想在地址栏里输入 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什么的么
或者相互关注,发私信?

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn