这两天把网站访问从http转到https访问出现了一些小问题,可能修改了apche的文件导致,浏览器居然可以访问网站目录,问题还是很严重的。不过好在这个好解决啊,给每个文件夹下放个空index.html文件,好了,但是感觉结果不慎满意啊,地址还是可以访问只不过是个空白页而已。
然后换一种方式,因为不想全局修改httpd.conf,所以只修改了网站配置文件vhost.conf,将Directory内的Options -Indexes -FollowSymLinks +ExecCGI这句的-Indexes去掉,保存文件,并重启apche。
<VirtualHost *:80>
DocumentRoot "/webdata/myweb"
<Directory "/webdata/myweb">
RewriteEngine on
RewriteCond %{SERVER_PORT} !^443$
RewriteRule ^(.*)?$ https://%{SERVER_NAME}/$1 [L,R]
Options -FollowSymLinks +ExecCGI
AllowOverride All
Order allow,deny
Allow from all
Require all granted
</Directory>
</VirtualHost>
(RewriteEngine开头的三句是将网站http访问全部转为https访问,之前这部分是放在网站根目录的.htaccess文件里的,但是发现还想给网站配置其他重写方式就不会了,还是对重写规则不熟悉。)
取消-Indexes之后还需要去网站根目录修改.htaccess文件,添加配置:
# 如果请求的是现有资源,则按原样执行
RewriteCond %{DOCUMENT_ROOT}%{REQUEST_URI} -f [OR]
RewriteCond %{DOCUMENT_ROOT}%{REQUEST_URI} -d
RewriteRule ^ - [L]
# 如果请求的资源不存在,则使用index.html
RewriteRule ^ /index.html
ErrorDocument 404 index.html
ErrorDocument 403 index.html
这样在访问目录无权限时页面会跳转到网站首页index,避免出现空白页的尴尬。