如htt://www.domain.com/member/list.php?id=333
映射成http://www.domain.com/member/list/333
应该如何设置Apache

解决方案 »

  1.   

    书上说这样写可以
    <Directory content>
      AcceptPathInfo on
      <Files filename>
        ForceType application/x-httpd-php
      </Files>
    </Directory>可我这样写了,却不起作用啊
    应该怎么设置
      

  2.   


    #你的句子意思是把目录下的所有文件解析为Php.
    AddType application/x-httpd-php  .do #添加.do为需要Php解析的文件.
    RewriteEngine On
    RewriteRule    (.*?)\.html$  $1.do #.html改写为.do也就是说 .html指向了.do.
    RewriteRule    (.*?)\.php$   $1.mamama #.php改写为.mamama就是个不存在的文件.
      

  3.   


    #如htt://www.domain.com/member/list.php?id=333 
    #映射成http://www.domain.com/member/list/333 
    RewriteEngine On
    RewriteRule ^/member/list/([0-9]*?)$ /member/list.php?id=$1
    没测试自己搞~
    Apache的rewrite_module必须开启.
      

  4.   

    SysTem128  你可能没理解我的意思
    我的意思是说把.php扩展名隐藏掉,把参数映射成目录的一部分#如htt://www.domain.com/member/list.php?id=333 
    #映射成http://www.domain.com/member/list/333 我之所以这样做是想一给用户一个友好的URL,二是想迷惑一下想搞破坏的人,让他们不知道是什么语言写的,不知道这是个目录还是路径这个我只是举了一个简单的例子,各位讲解的时候不要局限在member list这些局限住在网上搜索了很多资料,好多是用RewriteEngine 但这样增加了服务器负担,书上说用这样的方法配置APACHE<Directory   content> 
        AcceptPathInfo   on 
        <Files   filename> 
            ForceType   application/x-httpd-php 
        </Files> 
    </Directory> 但是不起作用,那位了解这方面知识,请讲解一下
      

  5.   

    给你说了 你那句ForceType是把目录下的所有文件按照Php文件进行解析.你可以把文件后缀改成 .do什么的.
    比如 index.php -> index.do
    然后
    AddType application/x-httpd-php  .do
    这样就可以使用 index.do 正常浏览了.#如htt://www.domain.com/member/list.php?id=333   
    #映射成http://www.domain.com/member/list/333   这只能使用Rewrite.
    Rewrite的规则也已经给你了.是你自己没理解那些句子的意思.自己看Apache手册去.
      

  6.   

    一般地址栏的地址是这样的,如下:
    www.domain.com/member/list/post.php?id=333&k=sssss
    我的意思是将.php扩展名隐藏掉,将参数部分(id=333&k=sssss)转成目录的一部分,如下:
    www.domain.com/member/list/post/333/sssss
    Apache会按此路径搜索,因为/333/sssss是不存在的,而post存在,实际是post.php,那么Apache会将/333/sssss付给PATH_INFO这个全局变量,我们获取它进行必要处理
    我这样做的目的一是给用户给搜索引擎一个友好的URL,二是给想搞破坏的人一种假像,虽然这样做可能对高手无济于事,但至少可以阻挡一般人的,多少会起作用书上说在httpd.conf这样配置就可以实现,如下:
    <Directory   content> 
        AcceptPathInfo   on 
        <Files   filename> 
            ForceType   application/x-httpd-php 
        </Files> 
    </Directory>
    但我这样配置了,不起作用,网上查资料说用到.htaccess文件,但Apache文档中不提倡用此文件,会影响服务器性能,而且在.htaccess中的配置放到httpd.conf中是一样的请各位指点一下,应该怎么作,请各位在讲解的时候不要局限在我给的这个目录,这只是个例子,用来说明我的问题,应该有个能用的方法,一个网站中的目录\文件多了,不可能针对每个文件都作解析吧?不知道各位能明白否?
      

  7.   

    实际大家可以看下CSDN,也就是本站的搜索,当在搜索框中输入关键字点搜索,注意看地址栏的变化,它就用了我说的方法
    友好URL,如下:
    在搜索框中输入Apache,地址栏是这样的:http://search.csdn.net/search/Apache/1/lt/
    在搜索框中输入tomcat,地址栏是这样的:http://search.csdn.net/search/tomcat/1/lt/我觉得这是一种很好的方法,请各位指点一下
    查了放多资料,都不是很明白
      

  8.   

    学习了!我没试过!
    <Directory       content>   \\定议content下目录所有文件解析规则
            AcceptPathInfo       on   \\不知道是什么意思
            <Files       filename>     \\定议content目录下的所有filename文件的解析规则
                    ForceType       application/x-httpd-php    \\具体定义
                                          \\当然也可以在这里定议重定向,这个楼上几位都说
            </Files>   
                       \\当然也可以在这里定议重定向,这个楼上几位都说
    </Directory> 
      

  9.   

    AcceptPathInfo               on       ForceType               application/x-httpd-php   
          RewriteEngine On
    等为具体指令!请查apache手册!
      

  10.   

    谢谢各位的讲解,基本上明白了
    昨天看了一晚上APACHE手册(英文的,看的是一知半解,呵..),通过重定向解决了我的问题,但新问题又来了
    CSS和IMAGES全都不能用了!
      

  11.   

    还是用.htaccess 不觉的占内存呢