apache php rewriterule疑问

linux服务器,ip:192.168.1.1,把路径/a在apache里设置为alias/a/a,问题1)我期望浏览器访问192.168.1.1/1/a.php时,服务... linux服务器,ip:192.168.1.1,把路径/a在apache里设置为alias /a /a,问题
1)我期望浏览器访问192.168.1.1/1/a.php时,服务器会当作192.168.1.1/a.php?id=1来处理,应该怎样写rewriterule

2)rewriterule必须配置域名吗,如果是ip可不可以
3)rewriterule的正则,开头匹配是从http://开始还是其他,如现在的情况,rewriterule为:
RewriteRule ^/a/test\.php$ a/test.php
当浏览器访问192.168.1.1/a/test.php时,服务器会当作怎样的url处理
展开
 我来答
阳光上的桥
2015-08-10 · 知道合伙人软件行家
阳光上的桥
知道合伙人软件行家
采纳数:21423 获赞数:65813
网盘是个好东东,可以对话和传文件

向TA提问 私信TA
展开全部
  1)我期望浏览器访问192.168.1.1/1/a.php时,服务器会当作192.168.1.1/a.php?id=1来处理,应该怎样写rewriterule

  RewriteRule ^/(\d+)/a\.php$ a.php?id=$1

  2)rewriterule必须配置域名吗,如果是ip可不可以

  从1的例子可以看出,rewrite匹配的内容是域名或者IP之后的内容,域名、IP都可以工作,但是无法对域名或者IP本身进行处理,那样的处理需要使用virtual server

  3)rewriterule的正则,开头匹配是从http://开始还是其他,如现在的情况,rewriterule为:
  RewriteRule ^/a/test\.php$ a/test.php
  当浏览器访问192.168.1.1/a/test.php时,服务器会当作怎样的url处理

  rewrite开头是域名或者IP之后的地址,也不匹配域名之前的协议(http、https等),只对地址进行处理,你的例子:
  RewriteRule ^/a/test\.php$ a/test.php
  好像没有任何转换,也就是处不处理都没有任何改变。
更多追问追答
追问

我这样设置,为什么192.168.1.1/index.php可以访问,但192.168.1.1/index.html无法访问呢

报http 400错误

追答
你那个rewrite是把index.html转到index.php上吧,两个问题,一是.应该转义,二是/不应该取消。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式