又是一个项目,为访问多个纯静态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还在好好学习中,我靠后面还有考试!

apache环境之困扰,Rewrite导致无法加载多个不同的.html文件的更多相关文章

  1. echarts.js导致angular-translate加载模块失败

    echarts.js导致angular-translate加载模块失败,待解决

  2. net::ERR_BLOCKED_BY_CLIENT 错误导致页面加载不出来

    AdBlock 禁止广告的插件屏蔽你的网络请求,屏蔽了一些重要的文件,导致页面加载不出来. 解决方案: 1.修改资源文件的名称,把ad替换成其他字符: 2.关闭广告拦截器: 3.广告拦截器设置白名单.

  3. 精尽MyBatis源码分析 - MyBatis初始化(二)之加载Mapper接口与XML映射文件

    该系列文档是本人在学习 Mybatis 的源码过程中总结下来的,可能对读者不太友好,请结合我的源码注释(Mybatis源码分析 GitHub 地址.Mybatis-Spring 源码分析 GitHub ...

  4. cordova加载层、进度条、文件选择插件

    在做cordova项目的时候,感觉应用的响应速度跟原生应用比相差甚远,一个主要问题就是如加载层.进度条等弹出对话框的效率不行.毕竟项目中的这些弹框都是用dom拼成的,dom的渲染效率和原生控件比起来慢 ...

  5. [Android]异步加载图片,内存缓存,文件缓存,imageview显示图片时增加淡入淡出动画

    以下内容为原创,欢迎转载,转载请注明 来自天天博客:http://www.cnblogs.com/tiantianbyconan/p/3574131.html  这个可以实现ImageView异步加载 ...

  6. 网站加载css/js/img等静态文件失败

    网站加载css/js/img等静态文件失败,报网站http服务器内部500错误.而服务器中静态文件存在且权限正常. 从浏览器中直接访问文件,出来乱码.这种问题原因在于iis中该网站mime配置报错,不 ...

  7. 安装Win7或者XP系统用虚拟光驱加载Win7或者XP镜像 iso文件xp win7wim文件

    安装Win7或者XP系统用虚拟光驱加载Win7或者XP镜像 iso文件xp win7wim文件 http://pcedu.pconline.com.cn/teach/xt/1201/2657834_8 ...

  8. ThinkPHP第三天(公共函数Common加载,dump定义,模板文件,定义替换__PUBLIC__)

    1.公共函数定义 自动加载:在项目的common文件夹中定义,公共函数文件命名规则为common.php,只有命名成common.php才能被自动载入. 动态加载:可以修改配置项‘LOAD_EXT_F ...

  9. 加载所有jar包下指定文件

    加载所有jar包下指定文件: 如spring中加载 META-INF/spring.handlers 加载 org.springframework.core.io.support.Properties ...

随机推荐

  1. 【原】The Linux Command Line - Redirection

    ● cat - Concatenate files● sort - Sort lines of text● uniq - Report or omit repeated lines● grep - P ...

  2. 自定义模块和grains

    一.自定义模块 saltstack有很多模块,模块的源码文件是在salt项目的:salt/modules.py; salt linux-node2-computer sys.doc   查看有哪些mo ...

  3. php 计算 距离

    function getdistance($lng1,$lat1,$lng2,$lat2){ //将角度转为狐度 $radLat1=deg2rad($lat1);//deg2rad()函数将角度转换为 ...

  4. Jenkins安装时Web页面报错提示离线安装

    先跳过所有. 方法1 先看它的提示:”参考离线Jenkins安装文档“发现链接点不开,我还以为是被墙了呢,FQ以后还是打不开.看来这个参考文档是没有用滴.点击配置HTTP代理跳出如下界面:安装Jenk ...

  5. Tomcat9 在Windows中配置允许远程访问

    环境:Windows  Server 2019 Data Center+Tomcat 9 Tomcat在Windows中安装好了之后,默认只能从本机以http://localhost:8080的方式访 ...

  6. Linux知识扩展一:执行前为什么加./

    转载:https://www.cnblogs.com/fortunel/p/8663669 1  ./表示当前路径,在执行可执行文件时,linux系统会从环境变量PATH中查找该文件的路径,但因为 L ...

  7. 探索未知种族之osg类生物---呼吸分解之更新循环一

    上节总结 前几天我们大体上介绍完成了osg的事件循环的介绍,总结一下osg的时间循环主要就是得到平台(windows)的所有消息,并遍历所有的node的eventCallback,并对他们进行处理.接 ...

  8. BZOJ2212或洛谷3521 [POI2011]ROT-Tree Rotations

    BZOJ原题链接 洛谷原题链接 线段树合并裸题. 因为交换子树只会对子树内部的逆序对产生影响,所以我们计算交换前的逆序对个数和交换后的个数,取\(\min\)即可. 对每个叶子节点建一棵动态开点线段树 ...

  9. 1,postman的安装

    1,下载postman 2,安装,下载和自己系统相对应的版本 本人下载的是window版本的,直接一步步安装就行 打开后进入下边的界面 建议使用native版本的postman,chrome插件的po ...

  10. js使用锚点回到顶部

    使用锚点链接是一种简单的返回顶部的功能实现.该实现主要在页面顶部放置一个指定名称的锚点链接,然后在页面下方放置一个返回到该锚点的链接,用户点击该链接即可返回到该锚点所在的顶部位置 <body s ...