最新公告
  • 欢迎您光临51分享吧,本站秉承服务宗旨 履行“站长”责任,销售只是起点 服务永无止境!立即加入我们
  • Apache服务器开启重定向Rewrite功能(.htaccess)的方法

    .htaccess文件是现代SEO优化常用的功能,mod_rewrite是Apache的一个非常强大的功能,它可以开启网站.htaccess文件功能从而实现页面伪静态。这里苏州seo安严就教大家Apache服务器开启Rewrite功能(.htaccess环境)的步骤方法!

    Apache开启.htaccess

    一、windows服务器开启Apache的Rewrite功能

    Windows上的Apache要开启Rewrite功能非常简单,因为apache的用户配置都是放在http.conf文件中,,只需要把该文件中“LoadModule rewrite_module modules/mod_rewrite.so”前面的注视去掉,然后重启apache环境即可,此时就能使用.htaccess网站重定向功能了。

    二、Linux服务器开启Apache的Rewrite功能

    但Linux上开启.htaccess重定向有所不同,默认Apache包配置是分散的,比如/etc/apache2目录可能包含conf.d、mods-available、mods-enabled、sites-available、sites-enabled文件夹,apache2.conf、envvars、httpd.conf(用户配置文件)、magic、ports.conf(APACHE端口配置)配置文件。系统不同、版本不同可能还会有其他细微差异。

    Ubuntu默认未开启Rewrite支持

    apche模块加载工作已分散到不同的配置文件,这样看起来似乎更为合理,管理起来也非常方便。但当用户需使用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模块,加载开启过程如下。

    一、判断Rewrite功能是否支持

    1.检测Apache是否支持mod_rewrite

    通过php提供的phpinfo()函数查看环境配置,通过Ctrl+F查找到“Loaded Modules”,其中列出了所有apache2handler已经开启的模块,如果里面包括“mod_rewrite”,则已经支持,不再需要继续设置。

    如果没有开启“mod_rewrite”,则打开目录 您的apache安装目录“/apache/conf/” 下的 httpd.conf 文件,通过Ctrl+F查找到“LoadModule rewrite_module”,将前面的”#”号删除即可。

    如果没有查找到,则到“LoadModule” 区域,在最后一行加入“LoadModule rewrite_module modules/mod_rewrite.so”(必选独占一行),然后重启apache服务器即可。

    二、检查确认目录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>定义在一起,方便维护。

    三、手动开启Apache加载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才会生效。

    3、测试Rewrite的.htaccess网站重定向功能

    以下为.htaccess测试实例:

    # BEGIN  <IfModule mod_rewrite.c>  RewriteEngine on  RewriteBase /  RewriteRule .*$ https://www.feiheseo.cn  </IfModule>  #END  

    测试方法,拷贝保存为.htaccess,上传到网站根目录下,访问网站任何路径页面,均会跳转到本博客,说明Rewrite已生效。

    四、本地apache服务器支持.htaccess功能

    如何让自己的本地APACHE服务器支持”.htaccess”呢?其实只要简单修改一下apache的httpd.conf设置就可以让 APACHE支 持.htaccess了。打开APACHE目录》》CONF目录里面》》httpd.conf文件用文本编辑器打开后,查找

    Options FollowSymLinks

    AllowOverride None

    改为

    Options FollowSymLinks

    AllowOverride All

    就可以了。

    提醒:正常修改.htaccess一般都是即时生效,如果修改的是apache conf配置文件,一般需要重启apache一次才会生效。


    本站大部分下载资源收集于网络,只做学习和交流使用,版权归原作者所有,若为付费资源,请在下载后24小时之内自觉删除,若作商业用途,请到原网站购买,由于未及时购买和付费发生的侵权行为,与本站无关。本站发布的内容若侵犯到您的权益,请联系本站删除,我们将及时处理!
    51分享吧 » Apache服务器开启重定向Rewrite功能(.htaccess)的方法
    • 195会员总数(位)
    • 2014资源总数(个)
    • 0本周发布(个)
    • 0 今日发布(个)
    • 380稳定运行(天)

    51分享吧 51DZSC.COM

    开通VIP 超级项目
    升级SVIP尊享更多特权立即升级