## 取消注释,启用常用模块 LoadModule php_module modules/mod_php.so #php支持模块 LoadModule rewrite_module modules/mod_rewrite.so #URL重写模块 ## 添加PHP的MIMETYPE Addtype application/x-httpd-php .php ## 默认页配置 DirectoryIndex index.php index.html index.htm
## Apache 2.2 ## <VirtualHost *:80> DocumentRoot /srv/www/site1 ServerName sitename.com ServerAlias aliasname1.com aliasname2.com #可选 ErrorLog /var/log/httpd/sitename_error.log #如未指定,则使用全局配置ErrorLog CustomLog /var/log/httpd/sitename_access.log common #可选 <Directory /srv/www/site1> Options MultiViews FollowSymLinks AllowOverride All Order allow,deny Allow From All </Directory> </VirtualHost> ## Apache 2.4 ## <VirtualHost *:80> DocumentRoot /srv/www/site1 ServerName sitename.com ServerAlias aliasname1.com aliasname2.com #可选 ErrorLog /var/log/httpd/sitename_error.log #如未指定,则使用全局配置ErrorLog CustomLog /var/log/httpd/sitename_access.log common #可选 <Directory /srv/www/site1> Options FollowSymLinks AllowOverride all Require all granted </Directory> </VirtualHost>
示例配置中使用了 common 的日志格式,可选的格式总共有4种:
格式分类 格式昵称 说明
普通日志格式(common log format,CLF) common 记录常规的请求信息
参考日志格式(referer log format) referer 在常规信息基础上增加来源页信息
代理日志格式(agent log format) agent 在常规信息基础上增加代理信息
综合日志格式(combined log format) combined 结合以上三种日志信息
RewriteRule Pattern Substitution [flags] Substitution: 若以http://thishost[:thisport]/开头,则强制执行为外部重定向,否则为内部重定向(例如伪静态技术) 若外部重定向没有R=指定code,则默认产生302响应(临时性移动) flag: NC忽略大小写 L立即停止重写操作,并不再应用其他重写规则 R若要使用300-400范围内的响应代码,只需在此指定R=即可 (或使用下列符号名称之一:temp(默认), permanent, seeother)
配置请求跳转
RewriteRule Pattern Substitution [R=permanent,L] # 301跳转, R=permanent进行永久重定向 RewriteRule Pattern Substitution [R,L] # 302跳转, 要求Substitution以http://开头
配置图片防盗链
RewriteEngine on RewriteCond %{HTTP_REFERER} !^$ [NC] RewriteCond %{HTTP_REFERER} ! http://www.你的域名.com [NC] RewriteCond %{HTTP_REFERER} ! http://www.baidu.com [NC] RewriteCond %{HTTP_REFERER} ! http://www.google.com [NC] RewriteRule .*\.(gif|jpg|jpeg|bmp|png)$ http://www.你的域名.com/unfind.jpg [R,NC,L]
一个请求必须包括协议,域名,端口在内都相同,才算在同域,否则为跨域。
跨域操作时,浏览器仍然会发出请求,但是需得到服务器的认可,才能获得成功的响应。
具体的即response中,包含了 Access-Control-Allow-Origin 这个header,且其值包含当前域名。
## 启用header模块 ## LoadModule headers_module modules/mod_headers.so ## 虚拟主机配置 ## Header set Access-Control-Allow-Origin http://other_domain.com