Apache虚拟主机及wordpress伪静态重写配置

装好了lamp环境,接下来放上网站调试一下吧。

wordpress伪静态重写是很有必要的,对搜索引擎友好,给人看着也舒坦。

注释掉/ect/httpd/conf/httpd.conf中主机配置段

在”DocumentRoot “/var/www/html””前加#注释掉该行配置

在/etc/httpd/conf.d/下定义虚拟主机配置文件

# vim  virtual.conf

NameVirtualHost 127.0.0.1:80		#你的IP

<VirtualHost  127.0.0.1:80>

	<Directory "/var/www/html/wordpress">   #针对目录,允许符号连接,允许重写

		Options FollowSymLinks

		Allowoverride All

	</Directory>

ServerName yourdomain.com		#你的域名

DocumentRoot "/var/www/html/wordpress"		#网站根目录

</VirtualHost>

检查语法&重新加载配置文件

# httpd -t

# service httpd reload

配置也可直接修改/etc/httpd/conf/httpd.conf文件追加到末尾,但建议就算一个网站也写成虚拟主机的形式放在/etc/httpd/conf.d/下。httpd.conf中有一行Include conf.d/*.conf意思是把所有.conf文件包含进去,这样方便管理,如果直接写在httpd.conf文件中的话不方便查看与修改。

上面只是一个主机的情况,下面放一个多主机的样例:

NameVirtualHost *:80
NameVirtualHost *:8080	#多端口需要在httpd.conf加上Listen 8080

<VirtualHost *:80>
	ServerAdmin admin@a.com
	ServerName a.com
	ServerAlias www.a.com	#别名
	DocumentRoot "/var/www/html/a"
</VirtualHost>

<VirtualHost *:8080>
	ServerAdmin admin@b.com
	ServerName b.com
	ServerAlias www.b.com	#别名
	DocumentRoot "/var/www/html/b"
</VirtualHost>

apache伪静态url重写失败的几点检查

1、确定载入重写模块:检查httpd.conf中LoadModule rewrite_module modules/mod_rewrite.so是否被#注释掉了,如果前面有#请去掉,最后用httpd -l检查一下

2、查看目录重写权限:

用vim编辑器查找Directory字段

修改为AllowOverride All和Allow from all

重启service httpd restart

注意那个里边很多#注释的Directory块。博主就是因为目录重写配错,最后在虚拟主机配置文件中加入的Directory块解决的。折腾了一两天的伪静态重写,原来是这的事,好心累。唉,生活要有一颗不怕bug的心啊。

3、手动建立.htaccess支持重写

如果wordpress后台固定链接%post_id%.html设置失败,手动写入

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /wordpress/
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /wordpress/index.php [L]
</IfModule>
 
# END WordPress

上面文件根据自己路径修改。当然Apache Rewrite重写规则很多,比如自定义404、防盗链、改后缀等。


好了,httpd.conf配置项很多,大家可以搜索具体用法。

有什么问题欢迎留言探讨。

 

 

转载请注明出处与链接,如有其他疑问或交流,请加QQ交流群或关注公众号加我微信

点赞

  1. 天使不在的11月说道:

    膜拜大神

  2. 王子龙说道:

    interesting

  3. 王子龙说道:

    现在好了吗,伪静态开启了吗

发表评论

电子邮件地址不会被公开。 必填项已用*标注