又是一个项目,为访问多个纯静态html页面h5游戏页,能够做一些简单分享和跳转即可。原本是一个简单得不能的项目,但是却多生了事端。
我按照apache的惯例,将文件上传到服务器的DocumentRoot目录,进行测试了。
刚开始使用目录下index.html访问该游戏,完全OK,测了一段时间,换成另一个文件index2.html,却不行了。报了500错误。
我以为或者我们都以为是html页面写错了,于是反复改语法,再试再试,结果却仍是不行。最后到只加载一行<h1>hello, world</h1>,也不行。焦头烂额啊,咋办呢?
1. 另外在服务器上单独新建一个a.html。输入简单的页面元素访问,Not ok,500错误依然!
2. 将同样的文件拿到本地环境运行,跑得飞快。这时,已经开始怀疑是服务器的问题了,但是没有办法,想多试试本地,继续在本地新建文件访问,结果本地服务器报了个403错误,乱七八糟的搞了一通,没有改好。算了,还是回测试服务器弄吧。
3. 新建readme.txt访问,结果没有访问到。这最终被证明是大小写没有写对的原因,哎呀,我去。
4. 新建test.php文件访问,结果一切正常。从这一刻开始,认为服务器只解析.php文件了。但是.js文件却又是能访问的,这。。。
<?php
echo "hello, world!";
5. 查看httpd-vhosts.conf文件。确认没有什么特殊的配置。
<VirtualHost *:>
DocumentRoot /www/web/m_admin/public_html
#ServerName admin.mobanker.com
ServerName 192.168.0.31
ServerAlias wx.sd.com
<Proxy *>
# #Order deny,allow
# Order allow,deny
Allow from all
</Proxy>
ErrorDocument /errpage/.html
ErrorDocument /errpage/.html
ErrorDocument /errpage/.html
<IfModule mod_deflate.c>
DeflateCompressionLevel
AddOutputFilterByType DEFLATE text/html text/plain text/xml application/x-httpd-php
AddOutputFilter DEFLATE css js html htm gif jpg png bmp php
</IfModule>
ProxyPass /eagleeye http://192.168.1.5:33008/eagleeye
ProxyPassReverse /eagleeye http://192.168.1.5:33008/eagleeye </VirtualHost>
<Directory /www/web/m_admin/public_html>
Options Indexes FollowSymLinks
AllowOverride All
Order allow,deny
Allow from all
</Directory>
6. 查看http.conf文件
# 如下参数是通过命令 cat /etc/httpd/conf/httpd.conf | grep -v "^#" | grep -v "^$" 筛选出来的
ServerTokens OS
ServerRoot "/etc/httpd"
PidFile run/httpd.pid
Timeout
KeepAlive Off
MaxKeepAliveRequests
KeepAliveTimeout
<IfModule prefork.c>
StartServers
MinSpareServers
MaxSpareServers
ServerLimit
MaxClients
MaxRequestsPerChild
</IfModule>
<IfModule worker.c>
StartServers
MaxClients
MinSpareThreads
MaxSpareThreads
ThreadsPerChild
MaxRequestsPerChild
</IfModule>
Listen
LoadModule auth_basic_module modules/mod_auth_basic.so
LoadModule auth_digest_module modules/mod_auth_digest.so
LoadModule authn_file_module modules/mod_authn_file.so
LoadModule authn_alias_module modules/mod_authn_alias.so
LoadModule authn_anon_module modules/mod_authn_anon.so
LoadModule authn_dbm_module modules/mod_authn_dbm.so
LoadModule authn_default_module modules/mod_authn_default.so
LoadModule authz_host_module modules/mod_authz_host.so
LoadModule authz_user_module modules/mod_authz_user.so
LoadModule authz_owner_module modules/mod_authz_owner.so
LoadModule authz_groupfile_module modules/mod_authz_groupfile.so
LoadModule authz_dbm_module modules/mod_authz_dbm.so
LoadModule authz_default_module modules/mod_authz_default.so
LoadModule ldap_module modules/mod_ldap.so
LoadModule authnz_ldap_module modules/mod_authnz_ldap.so
LoadModule include_module modules/mod_include.so
LoadModule log_config_module modules/mod_log_config.so
LoadModule logio_module modules/mod_logio.so
LoadModule env_module modules/mod_env.so
LoadModule ext_filter_module modules/mod_ext_filter.so
LoadModule mime_magic_module modules/mod_mime_magic.so
LoadModule expires_module modules/mod_expires.so
LoadModule deflate_module modules/mod_deflate.so
LoadModule headers_module modules/mod_headers.so
LoadModule usertrack_module modules/mod_usertrack.so
LoadModule setenvif_module modules/mod_setenvif.so
LoadModule mime_module modules/mod_mime.so
LoadModule dav_module modules/mod_dav.so
LoadModule status_module modules/mod_status.so
LoadModule autoindex_module modules/mod_autoindex.so
LoadModule info_module modules/mod_info.so
LoadModule dav_fs_module modules/mod_dav_fs.so
LoadModule vhost_alias_module modules/mod_vhost_alias.so
LoadModule negotiation_module modules/mod_negotiation.so
LoadModule dir_module modules/mod_dir.so
LoadModule actions_module modules/mod_actions.so
LoadModule speling_module modules/mod_speling.so
LoadModule userdir_module modules/mod_userdir.so
LoadModule alias_module modules/mod_alias.so
LoadModule rewrite_module modules/mod_rewrite.so
LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_balancer_module modules/mod_proxy_balancer.so
LoadModule proxy_ftp_module modules/mod_proxy_ftp.so
LoadModule proxy_http_module modules/mod_proxy_http.so
LoadModule proxy_connect_module modules/mod_proxy_connect.so
LoadModule cache_module modules/mod_cache.so
LoadModule suexec_module modules/mod_suexec.so
LoadModule disk_cache_module modules/mod_disk_cache.so
LoadModule file_cache_module modules/mod_file_cache.so
LoadModule mem_cache_module modules/mod_mem_cache.so
LoadModule cgi_module modules/mod_cgi.so
LoadModule version_module modules/mod_version.so
Include conf.d/*.conf
User apache
Group apache
ServerAdmin root@localhost
ServerName 127.0.0.1:80
UseCanonicalName Off
DocumentRoot "/var/www/html"
<Directory />
Options FollowSymLinks
AllowOverride None
</Directory>
<Directory "/var/www/html">
Options Indexes FollowSymLinks
AllowOverride None
Order allow,deny
Allow from all
</Directory>
DirectoryIndex index.html index.html.var
AccessFileName .htaccess
<Files ~ "^\.ht">
Order allow,deny
Deny from all
</Files>
TypesConfig /etc/mime.types
DefaultType text/plain
<IfModule mod_mime_magic.c>
MIMEMagicFile conf/magic
</IfModule>
HostnameLookups Off
EnableSendfile off
ErrorLog logs/error_log
LogLevel warn
LogFormat "%T %h %v %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\" %I %O \"%{X-Forwarded-For}i\" " combined
LogFormat "%h %l %u %t \"%r\" %>s %b" common
LogFormat "%{Referer}i -> %U" referer
LogFormat "%{User-agent}i" agent
CustomLog logs/access_log combined
ServerSignature On
Alias /icons/ "/var/www/icons/"
<Directory "/var/www/icons">
Options Indexes MultiViews
AllowOverride None
Order allow,deny
Allow from all
</Directory>
<IfModule mod_dav_fs.c>
# Location of the WebDAV lock database.
DAVLockDB /var/lib/dav/lockdb
</IfModule>
ScriptAlias /cgi-bin/ "/var/www/cgi-bin/"
<Directory "/var/www/cgi-bin">
AllowOverride None
Options None
Order allow,deny
Allow from all
</Directory>
IndexOptions FancyIndexing VersionSort NameWidth=* HTMLTable
AddIconByEncoding (CMP,/icons/compressed.gif) x-compress x-gzip
AddIconByType (TXT,/icons/text.gif) text/*
AddIconByType (IMG,/icons/image2.gif) image/*
AddIconByType (SND,/icons/sound2.gif) audio/*
AddIconByType (VID,/icons/movie.gif) video/*
AddIcon /icons/binary.gif .bin .exe
AddIcon /icons/binhex.gif .hqx
AddIcon /icons/tar.gif .tar
AddIcon /icons/world2.gif .wrl .wrl.gz .vrml .vrm .iv
AddIcon /icons/compressed.gif .Z .z .tgz .gz .zip
AddIcon /icons/a.gif .ps .ai .eps
AddIcon /icons/layout.gif .html .shtml .htm .pdf
ReadmeName README.html
HeaderName HEADER.html
IndexIgnore .??* *~ *# HEADER* README* RCS CVS *,v *,t
AddLanguage ca .ca AddLanguage zh-CN .zh-cn
AddLanguage zh-TW .zh-tw
LanguagePriority en ca cs da de el eo es et fr he hr it ja ko ltz nl nn no pl pt pt-BR ru sv zh-CN zh-TW
ForceLanguagePriority Prefer Fallback
AddDefaultCharset UTF-8
AddType application/x-compress .Z
AddType application/x-gzip .gz .tgz
AddHandler type-map var
AddType text/html .shtml
AddOutputFilter INCLUDES .shtml
Alias /error/ "/var/www/error/"
<IfModule mod_negotiation.c>
<IfModule mod_include.c>
<Directory "/var/www/error">
AllowOverride None
Options IncludesNoExec
AddOutputFilter Includes html
AddHandler type-map var
Order allow,deny
Allow from all
LanguagePriority en es de fr
ForceLanguagePriority Prefer Fallback
</Directory>
</IfModule>
</IfModule>
BrowserMatch "Mozilla/2" nokeepalive
BrowserMatch "MSIE 4\.0b2;" nokeepalive downgrade-1.0 force-response-1.0
BrowserMatch "RealPlayer 4\.0" force-response-1.0
BrowserMatch "Java/1\.0" force-response-1.0
BrowserMatch "JDK/1\.0" force-response-1.0
BrowserMatch "Microsoft Data Access Internet Publishing Provider" redirect-carefully
BrowserMatch "MS FrontPage" redirect-carefully
BrowserMatch "^WebDrive" redirect-carefully
BrowserMatch "^WebDAVFS/1.[0123]" redirect-carefully
BrowserMatch "^gnome-vfs/1.0" redirect-carefully
BrowserMatch "^XML Spy" redirect-carefully
BrowserMatch "^Dreamweaver-WebDAV-SCM1" redirect-carefully
<IfModule mod_proxy.c>
ProxyRequests On
<Proxy *>
Order allow,deny
Allow from all
</Proxy>
NameVirtualHost *:80
6. 中途查找了一个SSI相关的知识,还加了下.html的后缀。把根目录给改过,结果.html能访问了,.php却不能访问了,哎,还是只能撤消回来。
7. 去找运维同事解决,未果。他也忙也不忍心一直耽搁别人。不过通过查看错误日志了解到了一些端倪。
tail -f access_log error_log
8. 发现很多文件都会去访问某个php文件,怀疑请求被转发掉了。然后想到了apache的.htaccess文件,去查看,终于知道了原因,果然原来请求已被路由至有错误的文件去了。
RewriteEngine On^M
RewriteCond %{REQUEST_URI} !zq^M
RewriteRule \.(pfx|p12|der|jks|rsa|cer|cert|crt|csr|pem|sql)$ - [F,L]^M
RewriteRule ^rest/(.*)$ /rest.php/$ [L]^M
RewriteRule ^(app|wechat)/(.*)$ /uzone/rest.php/$/$ [L]
#no rewrite sth
#RewriteRule ^([a-z0-9_~%~.~+]+)/index([0-9]+).html /index.php\?$1&page=$2 [L]^M
RewriteRule ^([a-z0-9_~%~.~+]+)/a.html /index.php\?$/$ [L]^M
RewriteRule ^([a-z0-9_~%~.~+]+)/a([-]+).html /index.php\?$/$ [L]^M
RewriteRule ^([a-z0-9_~%~.~+]+)/a([-]+).html\?(.*) /index.php\?$/$&$ [L]^M
RewriteRule /([a-z0-9_~%~.~+]+)/index.html\?(.*) /index.php\?$&$ [L]^M
RewriteRule ^(.*)/u/([-]+)/(.*)$ /index.php\?u&$&$ [L]^M
RewriteRule ^(.*)/u/([-]+)/(.*)/$ /index.php\?u&$&$ [L]^M
RewriteRule ^(.*)/u/([-]+)$ /index.php\?u&$ [L]^M
RewriteRule ^(.*)/u/([-]+)/$ /index.php\?u&$ [L]^M
RewriteRule /([a-z0-9_~%~.~+]+)/index.html\?(.*) /index.php\?$&$ [L]^M
RewriteRule /([a-z0-9_~%~.~+]+)/index([-]+).html\?(.*) /index.php\?$&page=$&$ [L]^M
RewriteRule ^channel/(.*)$ /index.php\?$ [L]^M
RewriteRule ^data/upes/images/(.*)$ /dataacc/ime.php\?%{QUERY_STRING} [L]^M
RewriteRule ^data/cms/content/info/(.*)$ /dataacc/ime.php\?%{QUERY_STRING} [L]^M
RewriteRule ^voices/record/(.*)$ /dacc/image.php\?%{QUERY_STRING} [L]^M
RewriteRule ^pay/(.*)$ /index.php [L]^M
^M
Options -Indexes^M
^M
# zhima v3^M
RewriteCond %{QUERY_STRING} \bstate=v3@^M
RewriteRule ^alipay/auth/.*$ alipay/auth_v3/ [QSA,L]^M
将该路由注释去除后,问题得以解决。
哎,总算完结。凡事还得自己努力啊! JAVA还在好好学习中,我靠后面还有考试!