如何开启apache的重写功能

作者&投稿:贡俗 (若有异议请与网页底部的电邮联系)
如何开启apache的url重写功能~

  Apache 2.x 中URL重写,是通过mod_rewrite.so 来实现的,所以您要查看您的Apache 是否已经被编译进去这个模块了,并且在Apache的配置文件httpd.conf 中已经调用了这个模块。
  在大多数主流发行版中,Apache 2.x 是把rewrite模块已经编入进去了。比如我用的是Slackware。Apache 2.x的配置文件,放在 /etc/httpd 目录下。
  在 httpd.conf 中,我们会发现类似如下的一行,是有关rewrite模块的,模块名是 mod_rewrite.so 。

一、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开关,脚本如下:

Options Indexes FollowSymLinks
AllowOverride All
Order allow,deny
Allow from all

其中AllowOverride只能定义在Directory这个Section里,具体用法可参考apache官方说明(下文链接),以上脚本一般放在httpd.conf或/etc/httpd/conf.d/vhost.conf下面,尽量更网站配置的:
....
定义在一起,方便维护。
3、测试Rewrite功能
以下为.htaccess测试实例:
# BEGIN

RewriteEngine on
RewriteBase /
RewriteRule .*$ http://www.metsky.com

#END

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

工具:

apache


步骤:

1、首先,需要找到apache的文件所在位置。点击进入。

2、接着,找到Conf文件夹。点击进入。

3、接着,找到httpd.conf文件。点击编辑。

4、然后,找到如图的行代码,将前面的#去掉。

5、找到如图这句话,将其修改为如图所示。

6、点击保存。然后重启Apache。

注意事项:一定要重启,否则不生效



开启apache的重写功能步骤如下:
1、关于rewrite模块的调用:
Apache 2.x 中URL重写,是通过mod_rewrite.so 来实现的,所以您要查看您的Apache 是否已经被编译进去这个模块了,并且在Apache的配置文件httpd.conf 中已经调用了这个模块。在大多数主流发行版中,Apache 2.x 是把rewrite模块已经编入进去了。比如我用的是Slackware。Apache 2.x的配置文件,放在 /etc/httpd 目录下。
在 httpd.conf 中,我们会发现类似如下的一行,是有关rewrite模块的,模块名是 mod_rewrite.so 。
LoadModule rewrite_module lib/httpd/modules/mod_rewrite.so 或 LoadModule rewrite_module lib/apache2/modules/mod_rewrite.so 如果前面有#号,您要去掉。对于大多数发行版来说,Apache 2的模块一般是位于如下的两个位置 usr/lib/apache2/modules 或 /usr/lib/httpd/modules 如果在httpd中打开调用rewrite_module的设置,查看一下是不是能调用了,要通过 httpd -M的参数来查看; #/usr/sbin/httpd -M
如果发现有如下一行,说明模块已经能被调用了

rewrite_module (shared)

2、设置DocumentRoot的Directory:

在Apache 2.x 中,我们会看到 DocumentRoot设置的一行。这行就是存放网页程序的地方。比如LinuxSir.Org 存放在 /opt/www 目录中。那么我们就要设置 DocumentRoot为如下的。

DocumentRoot "/opt/www" 然后我们再还要对 DocumentRoot做针对性的行为设置。在一般的情况下,httpd.conf 会给一个默认的。如果你要改 DocumentRoot的路径,同时也要改针对DocumentRoot的Directory的设置,也就是

<Directory "DocumentRoot所设置的路径">

比如我们把DocumentRoot的路径改为了 "/opt/www",那我们也要把Directory做针对性的行为设置也要改成这个路径。

<Directory "/opt/www">

Options FollowSymLinks

#AllowOverride None 注:把这行前面加#号,然后加下面的一行 ,也就是 AllowOverride ALL
AllowOverride ALL
Order allow,deny
Allow from all
</Directory> 我们把AllowOverride 的参数设置为ALL,表示整台服务器上的,都支持URL规则重写。Apache 服务器要读每个网站根目录下的 .htaccess 文件。如果没有这个文件,或者这个文档没有定义任何关于URL重写的规则,则不会有任何效果。在一般的情况下,成熟的Web 服务器应用套件,都支持URL重写的,比如drupal和joomla 。当我们用这些程序时,会发现在安装包中有 .htaccess中有这个文件。我们把Apache配置好后,只是需要在这些程序的后台打开此功能就行了。
3、重启httpd服务器:

在一般情况下,在各个发行版中,都有httpd服务器启动脚本,比如

# /etc/rc.d/rc.httpd restart 注:Slackware Linux
# /etc/init.d/apache2 restart 注:ubuntu、Debian 等;

# /etc/init.d/httpd start 注:Fedora 、Redhat、CentOS
以上方法就可以了

首先找到安装目录下双击打开:httpd.conf,
找到httpd.conf第150行
(可能由于版本问题会有一样的情况,建议搜索:LoadModule rewrite_module modules/mod_rewrite.so)
然后图中画圈的#号给去掉
(#号代表注释的意思)
241行处的AllowOverride none改成AllowOverride all
然后关闭保存httpd.conf文件。
最后一步,重启apache服务器即可。


交响诗篇结局
第35话 AstralApache 为了救出诺鲁布大师,月光州一行人展开了行动。但在行动过程中,艾蕾卡却因为亲眼目睹民众匆忙避难的景象而萌生退缩之意,尼尔瓦修也因此一度失去联络。不过霍兰德等人还是决定贯彻到底,最后也顺利找到诺鲁布的所在之处。 第36话 Fantasia 看到瑞登无法接受尼尔瓦修在战斗时所留下的伤痕,让艾蕾卡对...

linux系统是怎么回事?可以简单的介绍下吗?
好在,由于 Linux 的稳定性良好,并且可以在便宜的 x86 架构下的计算机平台运作,所以吸引了很多的套件商与自由软件的开发团队在这个 Linux 的核心上面开发相关的软件,例如有名的 sendmail, wu-ftp, apache 等等。此外,亦有一些商业公司发现这个商机,因此,这些商业公司或者是非营利性的工作团队,便将 Linux 核心、核心...

spark和hadoop的区别
spark和hadoop的区别:诞生的先后顺序、计算不同、平台不同。诞生的先后顺序,hadoop属于第一代开源大数据处理平台,而spark属于第二代。属于下一代的spark肯定在综合评价上要优于第一代的hadoop。计算不同spark和hadoop在分布式计算的底层思路上,其实是极为相似的,即mapreduce分布式运算模型:将运算分成两...

Java的自学过程中怎么能有个清晰的学习路线?
初学者看源代码有的人推荐看 Struts2、spring 的,但是我相信10个初学者9个看不懂,那就从简单的开始,例如 Apache 的 Commons 库,例如 lang、dbutils、io 等,这些都是非常不错的代码,类的数量不多而且质量也不错,这些看懂之后,你的基础水平增长的不是一点点。再次提醒初学者,学习编程没有你想的那么简单,必须...

怎样有效提升WordPress网站速度
它把整个网页直接生成 HTML 文件,这样 Apache 就不用解析 PHP 脚本,通过使用这个插件,能使得你的网站速度将显著的提速。 还有一个类似的插件W3 Total Cache,WP Fastest Cache 也有同样的功能,选择一个使用就可以。 还有一款付费的最强大的缓存插件Wp-Rocket ,如果对速度比较在意使用这款插件吧,绝对不会让你失望,...

nginx 502 bad gateway问题怎么解决
503错误就可以保留,因为后端通常是apache resin,如果apache死机就是error,但resin死机,仅仅是503,所以还是有必要保留的。解决办法遇到502问题,可以优先考虑按照以下两个步骤去解决。1、查看当前的PHP FastCGI进程数是否够用:复制代码 代码如下:netstat -anpo | grep "php-cgi" | wc -l如果实际使用的“FastCGI进程数...

Apache Web服务器.htaccess文件配置
htAccess是Apache服务器的一个配置文件,具有强大的功能,本文介绍如何编辑该文件,让网站实现封锁某国家IP网段、防止图片、文件盗链、保护主机下的目录与文件、创建自定义的出错页面、把某些特殊的IP地址的请求重定向到别的站点、把老的域名转像新的域名,这些功能。htAccess 文件(Hypertext Access file)是...

新民市15250214760: 如何开启apache的重写功能 -
百乖鼻炎: 开启apache的重写功能步骤如下:1、关于rewrite模块的调用: Apache 2.x 中URL重写,是通过mod_rewrite.so 来实现的,所以您要查看您的Apache 是否已经被编译进去这个模块了,并且在Apache的配置文件httpd.conf 中已经调用了这个模块...

新民市15250214760: 该如何开启Apache的rewrite呢? -
百乖鼻炎: 1. 开启 Apache的 mod-rewrite 模块:启动 WAMP,点击桌面右下角的WAMP图标,选择 Apache,在开启的模块里,找到 mod-rewrite,如果前面有对号表示 Apache 开启了 mod-rewirte模块.2.把 Joomla 根目录下的 htaccess.txt 另存为 .htaccess 先准备个软件,叫 notepad++,用notepad++打开 htaccess.txt,然后另存为一下放在Jooomla的根目录下,文件名取为 .htaccess.3.在全局设置,网站,SEO设置里,将,搜索引擎友好链接 设置为“是”,使用Apache重写模式 设置为“是”.

新民市15250214760: 如何开启Apache Rewrite功能 -
百乖鼻炎: 您好,很高兴能帮助您,1. 开启 Apache的 mod-rewrite 模块:启动 WAMP,点击桌面右下角的WAMP图标,选择 Apache,在开启的模块里,找到 mod-rewrite,如果前面有对号表示 Apache 开启了 mod-rewirte模块.2.把 Joomla 根目录下的 ...

新民市15250214760: 如何打开Apache的Rewrite功能 -
百乖鼻炎: 方法/步骤 找到Apache的安装目录,打开配置文件,我本地的环境是D盘下面,具体的要看你的Apache的安装目录,打开httpd.conf配置文件 加载Apache的Rewrite模块,找到下面的选项,去掉前面的#号注释 做完第2步操作以后,此时的rewrite功能已经打开,但是要想在程序目录中使用rewrite功能,还要配置下面的选择,允许分布式配置文件,也就是.htaccess文件对apache的动态配置修改 设置完毕,重启Apache,搞定!END 注意事项 如果rewrite模块不能正常加载,请自行去梦网动力官方下载模块文件

新民市15250214760: 如何让Apache支持URL重写 -
百乖鼻炎: Apache 开启.htaccess httpd.conf Options FollowSymLinks AllowOverride All LoadModule rewrite_module modules/mod_rewrite.so

新民市15250214760: apache重写什么意思 -
百乖鼻炎: 首先,我们需要找到apache的文件所在位置.点击进入.如何开启apache的重写功能 接着,我们找到Conf文件夹.点击进入.如何开启apache的重写功能 接着,我们找到httpd.conf文件.点击编辑.如何开启apache的重写功能 然后,我们找到如图的行代码,将前面的#去掉.如何开启apache的重写功能 找到如图这句话,将其修改为如图所示.如何开启apache的重写功能 点击保存.然后重启Apache.如何开启apache的重写功能

新民市15250214760: 如何在Apache开启Rewrite环境 -
百乖鼻炎: 1. 找到Apache的安装目录,打开配置文件,我本地的环境是D盘下面,具体的要看你的Apache的安装目录,打开httpd.conf配置文件2. 加载Apache的Rewrite模块,找到下面的选项,去掉前面的#号注释 3.做完第2步操作以后,此时的rewrite功能已经打开,但是要想在程序目录中使用rewrite功能,还要配置下面的选择,允许分布式配置文件,也就是.htaccess文件对apache的动态配置修改 4.设置完毕,重启Apache,搞定!注意事项 如果rewrite模块不能正常加载,请自行去梦网动力官方下载模块文件 本答案来自于互联网,仅供参考学习作用 如果你对我的回答有疑问的地方,欢迎你继续追问!

新民市15250214760: 如何查看apache有没有开启url重写 -
百乖鼻炎: 在httpd.conf配置里查看是否有如下一行 LoadModule rewrite_module modules/mod_rewrite.so如果没有被注释掉,就说明是开启的,如果不想开启,把它注释掉,然后重启apache就可以了

新民市15250214760: 阿里云linux下怎么设置apache的重写 -
百乖鼻炎: 用root登录系统,用data命令来修改.普通用户没有权限修改系统时间.

新民市15250214760: apache2怎么开启url重写 -
百乖鼻炎: 关于rewrite模块的调用: Apache 2.x 中URL重写,是通过mod_rewrite.so 来实现的,所以您要查看您的Apache

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网