http://localhost/search.php?keyword=abc

http://localhost/abc.html
要求用rewriterule
不用rewritecond
谢谢
我是这样写的:RewriteRule ^keywords=([^&]*) $1.html
无效果

解决方案 »

  1.   

    RewriteBase /
    RewriteRule (.*).html /search.php?keyword=$1 [QSA,L]
      

  2.   

    您好像弄反了我的意思。
    我用
    #RewriteCond %{QUERY_STRING} ^keywords=(.*?)(&.*)?$
    #RewriteRule ^.*$ %1.html
    是可以实现我要的效果,可是由于某种原因,我不能使用rewriteCond
    我要的是从动态页到静态页
      

  3.   

    RewriteBase /
    RewriteRule ^\?keywords=(.*?)(&.*)?$ $1.html  [QSA,L]没测试,随便写的。
      

  4.   

    RewriteBase /
    RewriteRule (.+)\.html /search.php?keyword=$1 [L]
      

  5.   

    是什么意思?
    访问search.php?keyword=abc时实际是访问abc.html吗?rewrite的功能
    是在访问a时,即用户输入a地址(浏览器显示的a),服务器端实际处理的是b请求,也就是a并不存在,用户看到的结果相当于直接访问b的结果
    写作RewriteRule a blz这样感觉是跟平时需求反的,你既然要用户输入php了,直接在程序里面写个跳转好了,干嘛还搞rewirte呢
      

  6.   

    其实我的要求是:
    用户输入
    search.php?keywords=abc+def+ghk
    则跳转到
    abc-def-ghk.html我的写法是:
    #RewriteRule ^(.*?)\+(.*)$ $1\-$2 [NE,N]
    #RewriteCond %{QUERY_STRING} ^keywords=(.*?)(&.*)?$
    #RewriteRule ^.*$ %1.html
    它可以跳转abc+def+ghk.html到abc-def-ghk.html
    也可以跳转search.php?keywords=abc+def+ghk到abc+def+ghk.html
    但是就是不能同时起作用。
    我是从静态到动态,与平时静态化的相反。#RewriteCond %{QUERY_STRING} ^keywords=(.*?)(&.*)?$
    #RewriteRule ^.*$ %1.html
    上面的语句是能达到我的要求的,但是它不能继承上面的rewriterule的结果。
    所以我想把它换成rewriterule的
      

  7.   


    你确认你的问题描述没问题?  还是我的理解有问题?
    如果是你后面提到的需求, 就与 rewrite 完全没有关系..只需要在你的 search.php 中判断$keyword = $_GET['keywords'];
    if ( file_exits($keyword.".html")....
       header("Location: $keyword.html");
       exit;
    else   这里去处理生成 .html  文件即可.明白了??别把需求整得那么复杂...
      

  8.   

    是思路一时转不过弯呢还是lz另有需求?有待lz继续发表。。
      

  9.   

    当然php能实现,
    可是这里就是要求rewrite实现。
      

  10.   

    跳转要加R参数,普通rewrite都是不跳转内部处理的
      

  11.   

    RewriteRule是包括路径和文件名的
    你的^keywords=([^&]*) $1.html 明显是把这个当成是query串了吧?
      

  12.   

    请教一下如何

    search.php?keywords=a+b+c
    改成
    search.php?keywords=a-b-c?
      

  13.   

    上面的情况已经解决,不过对于
    keywords=a b c
    想把它转成
    keywords=a-b-c
    老是报错。[Tue Jul 06 14:07:14 2010] [error] [client 127.0.0.1] Request exceeded the limit of 10 internal redirects due to probable configuration error. Use 'LimitInternalRecursion' to increase the limit if necessary. Use 'LogLevel debug' to get a backtrace.
      

  14.   

    redirect的规则太多了超过了10次的限制