Apache开启URL重写功能方法
1、关于rewrite模块的调用:
Apache 2.x 中【zhōng】👝URL重写🕖,是通过mod_rewrite.so 来实现【lái shí xiàn】🚵的【de】⛺,所以您要查看您的【nín de】😳Apache 是否已经被编💱译进去【yì jìn qù】这个模【zhè gè mó】😦块了📇,并且在【zài】🐞Apache的【de】⛺配置文【pèi zhì wén】件【jiàn】httpd.conf 中【zhōng】👝已经调用【diào yòng】了📴这个模【zhè gè mó】😦块。在【zài】大多🔡数主流发行版【fā háng bǎn】🚿中【zhōng】👝,Apache 2.x 是把📿rewrite模块已【mó kuài yǐ】经编入进去了。比如【bǐ rú】🎉我用的【de】是🌬Slackware。Apache 2.x的【de】⛺配置文【pèi zhì wén】件【jiàn】,放在【zài】🐞 /etc/httpd 目录下【xià】🎹。
在【zài】🐞 httpd.conf 中【zhōng】👝,我们会发现👑类似如下【xià】🎹的【de】一行【háng】🏀,是有关💈rewrite模块的【de】🥍,模块名是 mod_rewrite.so 。
LoadModule rewrite_module lib/httpd/modules/mod_rewrite.so
或【huò】😓
LoadModule rewrite_module lib/apache2/modules/mod_rewrite.so 如果前面有#号🍁,您要去掉。对于大【duì yú dà】多数发🈳行【háng】版来🔆说【shuō】,Apache 2的【de】模块👃一般是位于如💛下【xià】🎹的【de】⛺两个位置
/usr/lib/apache2/modules
或【huò】😓
/usr/lib/httpd/modules 如果在【zài】🐞httpd中【zhōng】打开💅调用【diào yòng】🤠rewrite_module的设置【de shè zhì】🎦,查看一下【xià】🎹是不是能调🚾用了【yòng le】🕟,要通过【yào tōng guò】 httpd -M的【de】参数🅱来查看【lái chá kàn】;
#/usr/sbin/httpd -M
如果发现有如🥇下【xià】🎹一行【háng】🚓,说明模【shuō míng mó】🤟块已经能被调【néng bèi diào】用了【yòng le】📴
rewrite_module (shared)
2、设置【shè zhì】🎛DocumentRoot的【de】⛺Directory:
在【zài】🐞Apache 2.x 中【zhōng】👝,我们会看到 DocumentRoot设置【shè zhì】🎛的【de】一行【háng】🏀。这行【háng】就是存放🍔网页程序的【de】⛺地方【dì fāng】。比如【bǐ rú】🎉LinuxSir.Org 存放在【zài】🐞 /opt/www 目录中【mù lù zhōng】👝。那么我【nà me wǒ】🚽们就要设置【shè zhì】🎛 DocumentRoot为如下【xià】📂的【de】⛺。
DocumentRoot "/opt/www" 然后我们再还【men zài hái】要对 DocumentRoot做针对【zuò zhēn duì】性的【xìng de】⛺行为设【háng wéi shè】置🔨。在一般【zài yī bān】😰的【de】⛺情况下【qíng kuàng xià】🎹,httpd.conf 会给一个默认的【de】⛺。如果你【rú guǒ nǐ】🤞要改【yào gǎi】👦 DocumentRoot的【de】⛺路径【lù jìng】,同时也【tóng shí yě】📠要改【yào gǎi】👦针对DocumentRoot的【de】⛺Directory的设置【de shè zhì】🎦,也就是🐃
<Directory "DocumentRoot所设置【suǒ shè zhì】🎛的【de】⛺路径【lù jìng】">
比如【bǐ rú】🎉我们把【wǒ men bǎ】✌DocumentRoot的【de】⛺路径改【lù jìng gǎi】为了【wéi le】 "/opt/www",那我们也要把Directory做针对【zuò zhēn duì】性的【xìng de】⛺行为设【háng wéi shè】置🔨也要改【yě yào gǎi】👦成这个路径【lù jìng】。
<Directory "/opt/www">
Options FollowSymLinks
#AllowOverride None 注【zhù】🎂:把这行【háng】前面加#号🍁,然后加下【xià】🎹面的【de】一行【háng】🏀 ,也就是🐃 AllowOverride ALL
AllowOverride ALL
Order allow,deny
Allow from all
</Directory> 我们把【wǒ men bǎ】✌AllowOverride 的【de】参数🅱设置【shè zhì】为🗞ALL,表示整台服务【tái fú wù】器🥌上的【de】⛺,都支持【dōu zhī chí】URL规则【guī zé】重写🕖。Apache 服务器🥌要读每🛋个网站根目录下【xià】🎹的【de】⛺ .htaccess 文件【wén jiàn】。如果没有这个文件【gè wén jiàn】,或【huò】者这🌔个文档没有定【méi yǒu dìng】🍯义任何关于URL重写的【chóng xiě de】📍规则【guī zé】,则不会有任何【yǒu rèn hé】🐲效果【xiào guǒ】。在一般【zài yī bān】😰的【de】⛺情况下【qíng kuàng xià】🎹,成熟的【chéng shú de】⛺Web 服务器🥌应用套👻件【jiàn】,都支持【dōu zhī chí】URL重写的【chóng xiě de】📍,比如【bǐ rú】🎉drupal和joomla 。当我们用这些程序时,会发现👑在【zài】🐞安装包【ān zhuāng bāo】中【zhōng】👝有 .htaccess中有这【zhōng yǒu zhè】⤴个文件【gè wén jiàn】。我们把【wǒ men bǎ】✌Apache配置好🕤后,只是需要在【zài】🐞这些程序的【de】⛺后台打开此【kāi cǐ】🚕功能就行【háng】了。
3、重启httpd服务器🥌:
在一般【zài yī bān】😰情况下【qíng kuàng xià】🎹,在【zài】🐞各个发行版【fā háng bǎn】🚿中【zhōng】👝,都有httpd服务器🥌启动脚本【běn】,比如【bǐ rú】🎉
# /etc/rc.d/rc.httpd restart 注【zhù】🎂:Slackware Linux
# /etc/init.d/apache2 restart 注【zhù】🎂:ubuntu、Debian 等🤕;
# /etc/init.d/httpd start 注【zhù】🎂:Fedora 、Redhat、CentOS
关键词:Apache,URL重写
阅读本文后您有什么感想? 已有 人给出评价!
- 0
- 0
- 0
- 0
- 0
- 0