天缘博客

日薄风骤艳阳曾,月明今夜诵三经,天缘路上多风雨,地北天南亦有情。

Ubuntu上如何开启Apache Rewrite功能

Windows上开启Apache非常简单,因为apache的用户配置都是放在http.conf文件中,要开启Rewrite功能,只需要把该文件中LoadModule rewrite_module modules/mod_rewrite.so前面的注视去掉,然后重启APACHE即可。但在Ubuntu上则有所不同,默认Apache包配置是按照目录和文件存放的,/etc/apache2目录包含conf.d、mods-available、mods-enabled、sites-available、sites-enabled文件夹,apache2.conf、envvars、httpd.conf(用户配置文件)、magic、ports.conf(APACHE端口配置)配置文件。

基础阅读:

Ubuntu VPS安装Apache+PHP+MySQL指南

VPS服务器选择和维护入门

htaccess rewrites重写规则实例

网站基础:URL伪静态化概念与常见方法

完美解决IIS和APACHE的301重定向

一、Ubuntu默认未开启Rewrite支持

其中,mods-available是指可用的模块,mods-enabled是指当前已经默认加载的模块。httpd.conf默认是个空文件,因为大部分加载工作都被分散到不同的配置文件里,总体加载配置文件是apache2.conf,其部分内容如下:

# Include module configuration:
Include /etc/apache2/mods-enabled/*.load
Include /etc/apache2/mods-enabled/*.conf

# Include all the user configurations:
Include /etc/apache2/httpd.conf

# Include ports listing
Include /etc/apache2/ports.conf

......

# Include generic snippets of statements
Include /etc/apache2/conf.d/

# Include the virtual host configurations:
Include /etc/apache2/sites-enabled/

从这些语句可以看出,加载工作已经分散到不同的配置文件,这样看起来似乎更为合理,管理起来也非常方便。下面看一下如何开启Rewrite模块,当用户需使用301重定向、伪静态等Rewrite功能时,一般都习惯于使用.htaccess文件配置,比如下面的301重定向:

Options +FollowSymLinks
RewriteEngine on
RewriteCond %{HTTP_HOST} ^abc.com [NC]
RewriteRule ^(.*)$ http://www.metsky.com/$1 [L,R=301]
RewriteCond %{HTTP_HOST} ^www.abc.com[NC]
RewriteRule ^(.*)$ http://www.metsky.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/met.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分配的默认www文件夹(没有创建单独的配置文件,比如/sites-availbe/metsky.com),可能还需要修改/etc/apache2/sites-available/default这个文件,把其中的AllowOverride None修改为AllowOverride All,因为default配置里还默认关闭.htaccess重载,打开后.htaccess才会生效。

<VirtualHost 12.34.56.78:80>
    ServerAdmin webmaster@localhost
    DocumentRoot /var/www
    <Directory />
        Options FollowSymLinks
        AllowOverride None
    </Directory>
    <Directory /var/www/>
        Options Indexes FollowSymLinks MultiViews
        AllowOverride None
        Order allow,deny
        allow from all
    </Directory>

    ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
    <Directory "/usr/lib/cgi-bin">
        AllowOverride None
        Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
        Order allow,deny
        Allow from all
    </Directory>

    ErrorLog /var/log/apache2/error.log

    # Possible values include: debug, info, notice, warn, error, crit,
    # alert, emerg.
    LogLevel warn

    CustomLog /var/log/apache2/access.log combined

    Alias /doc/ "/usr/share/doc/"
    <Directory "/usr/share/doc/">
        Options Indexes MultiViews FollowSymLinks
        AllowOverride None
        Order deny,allow
        Deny from all
        Allow from 127.0.0.0/255.0.0.0 ::1/128
    </Directory>

</VirtualHost>

配置完成后,重启 Apache,命令:/etc/init.d/apache2 restart

更多参考文章:

WordPress永久链接格式对比及设置参考

Apache服务器httpd.conf配置文件说明

Linux(Ubuntu)挂载点介绍及桌面服务器分区方案

Ubuntu CD/LiveDVD桌面/服务器各版本下载

天缘网友 [天缘]: 2011-06-22 12:54:57 发表
@徐州网页设计:REWRITE以及正则表达式,都比较麻烦,很少人能记得住,直接书写
天缘网友 [徐州网络公司]: 2011-05-24 09:06:09 发表
有点难度的,一时还搞不明白
天缘网友 [徐州网页设计]: 2011-05-22 05:33:37 发表
重写后有利于收录,和提高排名的
天缘网友 [天缘]: 2011-05-07 04:38:52 发表
@香水王:2003?要是用IIS的话会很麻烦,如果系统是WP的话要简单些有现成插件,APACHE还是一样的。
@xuzhouweb:我也是现做现卖的。
@重庆时时彩:谢谢夸奖,欢迎再次光临
天缘网友 [xuzhouweb]: 2011-04-25 10:23:12 发表
来学习了,需要慢慢体会的
天缘网友 [防水板]: 2011-04-20 06:29:56 发表
真的很有效,我正寻找呢
天缘网友 [香水王]: 2011-04-19 05:06:55 发表
你知道在server03下如何配置吗
天缘网友 [RLC负载]: 2011-04-19 03:09:21 发表
这些东西看着就复杂,还是交给虚拟主机商来管理吧!
天缘网友 [佳缘]: 2011-04-18 07:43:42 发表
用了一段时间ubuntu,现在用win7
天缘网友 [coachclearanceshoes]: 2011-04-12 09:10:00 发表
什么时候的文章呀!!!!!!!
天缘网友 [重庆时时彩]: 2011-04-10 14:05:31 发表
很仔细的看完了!写的很好!
天缘网友 [北京摄影]: 2011-03-22 06:47:29 发表
不错的网站
天缘网友 [国画]: 2011-03-21 12:00:27 发表
学习了,这个得慢慢研究。
天缘网友 [美白王]: 2011-03-15 01:23:30 发表
把我的ubuntu弄弄
天缘网友 [拉拉]: 2011-02-26 10:59:18 发表
来看看那
天缘网友 [戈尔本]: 2011-02-16 05:35:32 发表
正在用乌班图,命令行下用的少,不过还是支持一下
天缘网友 [天缘]: 2011-02-04 07:31:00 发表
@花架子:@太阳博客:祝福大家新年快乐,兔年吉祥
天缘网友 [太阳博客]: 2011-02-03 10:09:19 发表
祝福兔年,肥肥滴。
天缘网友 [怎么赚钱]: 2011-02-02 06:54:56 发表
又见到技术帖了
天缘网友 [花架子]: 2011-02-02 03:26:52 发表
家和睦,人似仙,潇洒走人间;酒当歌,曲轻弹,儿孙高满堂;花儿美,碧水连,日月追云间;梦成真,福禄全,快乐每一天!祝兔年更幸福!
天缘网友 [周舟]: 2011-01-31 08:17:44 发表
不太懂 看不太明白
天缘网友 [囧啊囧]: 2011-01-30 14:35:15 发表
我还没有在ubuntu下弄环境呢
天缘网友 [天缘]: 2011-01-30 11:57:56 发表
@思齐:所有更多文章都是手动添加的,自动程序不太精准。
天缘网友 [思齐]: 2011-01-30 10:21:39 发表
天缘文章后面的那个更多参考文章是手动添加的吗,还是有什么工具?如果是手动的话你也够细心的.

发表评论:

◎欢迎参与讨论,所有评论皆需审核,非法及及未经许可的广告信息不是勤劳致富的法宝,请勿发表。

订阅博客

最近发表

标签云

快速通道

本站采用创作共用版权协议, 要求署名、非商业用途和保持一致. 转载也必须遵循“署名-非商业用途-保持一致”的创作共用协议. 返回顶部
Copyright@2005-2012 Metsky.com, All rights Reserved.