如何使用 Rewrite 功能

 我来答
huanglenzhi
2015-04-24 · 知道合伙人数码行家
huanglenzhi
知道合伙人数码行家
采纳数:117525 获赞数:517229
长期从事计算机组装,维护,网络组建及管理。对计算机硬件、操作系统安装、典型网络设备具有详细认知。

向TA提问 私信TA
展开全部
  一、Ubuntu默认未开启Rewrite支持
  apche模块加载工作已分散到不同的配置文件,这样看起来似乎更为合理,管理起来也非常方便。下面看一下如何开启Rewrite模块,当用户需使用301重定向、伪静态等Rewrite功能时,一般都习惯于使用.htaccess文件配置,比如下面的301重定向:
  Options +FollowSymLinks
  RewriteEngine on
  RewriteCond %{HTTP_HOST} ^abc.com [NC]
  RewriteRule ^(.*)$ http://www.abc.com/$1 [L,R=301]

  配置完成后,使用/etc/init.d/apache2 reload命令加载生效,这时,如果未开启Rewrite功能,则会出现500错误(浏览器显示),查看LOG错误如下:
  [Sun Jan 30 02:41:29 2011] [alert] [client 12.34.56.78] /srv/www/abc.com/public_html/.htaccess: Invalid command 'RewriteEngine', perhaps misspelled or defined by a module not included in the server configuration
  说明需要开启Rewrite模块加载,加载开启过程如下。
  二、手动开启加载Rewrite
  1、使用终端工具连接服务器,输入管理员帐号和密码
  2、执行加载Rewrite模块:
  a2enmod rewrite
  执行后,会提示OK和重启Apache命令(/etc/init.d/apache2 restart)。
  3、参照上文的目录配置,做个启动链接(下次启动自动加载):
  ln -s /etc/apache2/mods-available/rewrite.load /etc/apache2/mods-enabled/rewrite.load
  执行后会在mods-available目录下创建一个快捷方式,连接到mods-enabled下rewrite模块。
  4、重启apache:
  /etc/init.d/apache2 restart
  注意:如果使用的是apache默认网站目录(一般是类似于/var/www文件夹),没有创建单独的自己配置文件,可能还需要修改/etc/apache2/sites-available/default这个文件,把其中的AllowOverride None修改为AllowOverride All,因为default配置里还默认关闭.htaccess重载,打开后.htaccess才会生效。
  三、如何判断Rewrite已经开启
  1、检查确认Rewrite模块加载
  本文测试是在CentOS 6系统上,路径为:/etc/httpd/conf/httpd.conf
  LoadModule rewrite_module modules/mod_rewrite.so
  如果前面有注释就去掉即可,重启APACHE。
  2、检查确认目录Rewrite打开
  Rewrite库加载不代表我们的.htaccess文件就能生效,还需要专门打开指定目录的AllowOveride开关,脚本如下:
  <Directory /var/www/>
  Options Indexes FollowSymLinks
  AllowOverride All
  Order allow,deny
  Allow from all
  </Directory>
  其中AllowOverride只能定义在Directory这个Section里,具体用法可参考apache官方说明(下文链接),以上脚本一般放在httpd.conf或/etc/httpd/conf.d/vhost.conf下面,尽量更网站配置的:
  <VirtualHost ...> ....</VirtualHost>
  定义在一起,方便维护。
  3、测试Rewrite功能
  以下为.htaccess测试实例:
  # BEGIN
  <IfModule mod_rewrite.c>
  RewriteEngine on
  RewriteBase /
  RewriteRule .*$ http://www.metsky.com
  </IfModule>
  #END

  测试方法,拷贝保存为.htaccess,上传到网站根目录下,访问网站任何路径页面,均会跳转到本博客,说明Rewrite已生效。
Storm代理
2023-07-25 广告
StormProxies是一家可靠的代理服务提供商,提供原生IP(住宅原生IP)和高匿名代理服务。以下是关于StormProxies的原生IP服务的一些信息:1. 住宅原生IP:StormProxies提供的住宅原生IP是指从真实的家庭或企... 点击进入详情页
本回答由Storm代理提供
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式