apache 重写配置问题

由于采用.htaccess方式重写 网站目录设置 allowoverride none
导致网页无法打开 none 改成 all 一切正常

我们先放下面的部分到httpd.conf
options Indexes followsymlinks
allowoverride all


相关信息:

一、httpd.conf的实现方法

我们放下面的部分到/opt/apache2/conf/httpd.conf

options Indexes followsymlinks
allowoverride all
rewriteengine on
rewritebase /
rewriterule ^(.*)$ index.html.en [R=301]


注:
A. rewriteengine on 为重写引擎开关,如果设为off,则任何重写规则定义将不被应
用,该开关的另一好处就是如果为了临时拿掉重写规则,则改为off再重启动Apache即
可,不必将下面一条条的重写规则注释掉。
B.rewritebase / 的作用是如果在下面的rewriterule定义中被重写后的部分(此处为文件名index.html.en)
a.前面没有/,则是相对目录,相对于这个rewritebase后面的定义也就是/usr/local/apache/htdocs/index.html.en,
b.如果此处没有rewritebase /这 一项,则被重写成 http://192.168.xxx.xxx/usr/local/apache/htdocs/manual/index.html.en ,显然是不正确的。

不过这里我们也可以不用rewritebase / , 而改为
rewriteengine on
rewriterule ^(.*)$ /index.html.en [R=301]
或者
rewriteengine on
rewriterule ^(.*)$ http://192.168.1.56/index.html.en [R=301]

二、.htaccess的实现方法

我们先放下面的部分到httpd.conf


options Indexes followsymlinks
allowoverride all


然后放下面的部分到/usr/local/apache/htdocs/manual/.htaccess中
rewriteengine on
rewritebase /
rewriterule ^(.*)$ index.html.en [R=301]

注:对文件.htaccess所作的任何改动不需要重启动Apache.

问:要是把这个manual目录重定向到用户jephe的自己的主目录呢?
用下面的.htaccess方案。
rewriteengine on
rewritebase /~jephe/
rewriterule ^(.*)$ $1 [R=301]

则对manual目录下任何文件的请求被重定向到~jephe目录下相同文件的请求。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值