博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
apache环境之困扰,Rewrite导致无法加载多个不同的.html文件
阅读量:6849 次
发布时间:2019-06-26

本文共 9645 字,大约阅读时间需要 32 分钟。

  又是一个项目,为访问多个纯静态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文件却又是能访问的,这。。。

5. 查看httpd-vhosts.conf文件。确认没有什么特殊的配置。

DocumentRoot /www/web/m_admin/public_html#ServerName admin.mobanker.comServerName 192.168.0.31ServerAlias wx.sd.com
# #Order deny,allow# Order allow,deny Allow from all
ErrorDocument 400 /errpage/400.htmlErrorDocument 403 /errpage/403.htmlErrorDocument 404 /errpage/404.html
DeflateCompressionLevel 7 AddOutputFilterByType DEFLATE text/html text/plain text/xml application/x-httpd-php AddOutputFilter DEFLATE css js html htm gif jpg png bmp php
ProxyPass /eagleeye http://192.168.1.5:33008/eagleeyeProxyPassReverse /eagleeye http://192.168.1.5:33008/eagleeye
Options Indexes FollowSymLinks AllowOverride All Order allow,deny Allow from all

6. 查看http.conf文件

# 如下参数是通过命令  cat /etc/httpd/conf/httpd.conf | grep -v "^#" | grep -v "^$" 筛选出来的 ServerTokens OSServerRoot "/etc/httpd"PidFile run/httpd.pidTimeout 120KeepAlive OffMaxKeepAliveRequests 100KeepAliveTimeout 15
StartServers 8MinSpareServers 5MaxSpareServers 20ServerLimit 256MaxClients 256MaxRequestsPerChild 4000
StartServers 2MaxClients 150MinSpareThreads 25MaxSpareThreads 75 ThreadsPerChild 25MaxRequestsPerChild 0
Listen 80LoadModule auth_basic_module modules/mod_auth_basic.soLoadModule auth_digest_module modules/mod_auth_digest.soLoadModule authn_file_module modules/mod_authn_file.soLoadModule authn_alias_module modules/mod_authn_alias.soLoadModule authn_anon_module modules/mod_authn_anon.soLoadModule authn_dbm_module modules/mod_authn_dbm.soLoadModule authn_default_module modules/mod_authn_default.soLoadModule authz_host_module modules/mod_authz_host.soLoadModule authz_user_module modules/mod_authz_user.soLoadModule authz_owner_module modules/mod_authz_owner.soLoadModule authz_groupfile_module modules/mod_authz_groupfile.soLoadModule authz_dbm_module modules/mod_authz_dbm.soLoadModule authz_default_module modules/mod_authz_default.soLoadModule ldap_module modules/mod_ldap.soLoadModule authnz_ldap_module modules/mod_authnz_ldap.soLoadModule include_module modules/mod_include.soLoadModule log_config_module modules/mod_log_config.soLoadModule logio_module modules/mod_logio.soLoadModule env_module modules/mod_env.soLoadModule ext_filter_module modules/mod_ext_filter.soLoadModule mime_magic_module modules/mod_mime_magic.soLoadModule expires_module modules/mod_expires.soLoadModule deflate_module modules/mod_deflate.soLoadModule headers_module modules/mod_headers.soLoadModule usertrack_module modules/mod_usertrack.soLoadModule setenvif_module modules/mod_setenvif.soLoadModule mime_module modules/mod_mime.soLoadModule dav_module modules/mod_dav.soLoadModule status_module modules/mod_status.soLoadModule autoindex_module modules/mod_autoindex.soLoadModule info_module modules/mod_info.soLoadModule dav_fs_module modules/mod_dav_fs.soLoadModule vhost_alias_module modules/mod_vhost_alias.soLoadModule negotiation_module modules/mod_negotiation.soLoadModule dir_module modules/mod_dir.soLoadModule actions_module modules/mod_actions.soLoadModule speling_module modules/mod_speling.soLoadModule userdir_module modules/mod_userdir.soLoadModule alias_module modules/mod_alias.soLoadModule rewrite_module modules/mod_rewrite.soLoadModule proxy_module modules/mod_proxy.soLoadModule proxy_balancer_module modules/mod_proxy_balancer.soLoadModule proxy_ftp_module modules/mod_proxy_ftp.soLoadModule proxy_http_module modules/mod_proxy_http.soLoadModule proxy_connect_module modules/mod_proxy_connect.soLoadModule cache_module modules/mod_cache.soLoadModule suexec_module modules/mod_suexec.soLoadModule disk_cache_module modules/mod_disk_cache.soLoadModule file_cache_module modules/mod_file_cache.soLoadModule mem_cache_module modules/mod_mem_cache.soLoadModule cgi_module modules/mod_cgi.soLoadModule version_module modules/mod_version.soInclude conf.d/*.confUser apacheGroup apacheServerAdmin root@localhostServerName 127.0.0.1:80UseCanonicalName OffDocumentRoot "/var/www/html"
Options FollowSymLinks AllowOverride None
Options Indexes FollowSymLinks AllowOverride None Order allow,deny Allow from all
DirectoryIndex index.html index.html.varAccessFileName .htaccess
Order allow,deny Deny from all
TypesConfig /etc/mime.typesDefaultType text/plain
MIMEMagicFile conf/magic
HostnameLookups OffEnableSendfile offErrorLog logs/error_logLogLevel warnLogFormat "%T %h %v %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\" %I %O \"%{X-Forwarded-For}i\" " combinedLogFormat "%h %l %u %t \"%r\" %>s %b" commonLogFormat "%{Referer}i -> %U" refererLogFormat "%{User-agent}i" agentCustomLog logs/access_log combinedServerSignature OnAlias /icons/ "/var/www/icons/"
Options Indexes MultiViews AllowOverride None Order allow,deny Allow from all
# Location of the WebDAV lock database. DAVLockDB /var/lib/dav/lockdb
ScriptAlias /cgi-bin/ "/var/www/cgi-bin/"
AllowOverride None Options None Order allow,deny Allow from all
IndexOptions FancyIndexing VersionSort NameWidth=* HTMLTableAddIconByEncoding (CMP,/icons/compressed.gif) x-compress x-gzipAddIconByType (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 .exeAddIcon /icons/binhex.gif .hqxAddIcon /icons/tar.gif .tarAddIcon /icons/world2.gif .wrl .wrl.gz .vrml .vrm .ivAddIcon /icons/compressed.gif .Z .z .tgz .gz .zipAddIcon /icons/a.gif .ps .ai .epsAddIcon /icons/layout.gif .html .shtml .htm .pdfReadmeName README.htmlHeaderName HEADER.htmlIndexIgnore .??* *~ *# HEADER* README* RCS CVS *,v *,tAddLanguage ca .caAddLanguage zh-CN .zh-cnAddLanguage zh-TW .zh-twLanguagePriority 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-TWForceLanguagePriority Prefer FallbackAddDefaultCharset UTF-8AddType application/x-compress .ZAddType application/x-gzip .gz .tgzAddHandler type-map varAddType text/html .shtmlAddOutputFilter INCLUDES .shtmlAlias /error/ "/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
BrowserMatch "Mozilla/2" nokeepaliveBrowserMatch "MSIE 4\.0b2;" nokeepalive downgrade-1.0 force-response-1.0BrowserMatch "RealPlayer 4\.0" force-response-1.0BrowserMatch "Java/1\.0" force-response-1.0BrowserMatch "JDK/1\.0" force-response-1.0BrowserMatch "Microsoft Data Access Internet Publishing Provider" redirect-carefullyBrowserMatch "MS FrontPage" redirect-carefullyBrowserMatch "^WebDrive" redirect-carefullyBrowserMatch "^WebDAVFS/1.[0123]" redirect-carefullyBrowserMatch "^gnome-vfs/1.0" redirect-carefullyBrowserMatch "^XML Spy" redirect-carefullyBrowserMatch "^Dreamweaver-WebDAV-SCM1" redirect-carefully
ProxyRequests On
Order allow,deny Allow from all
NameVirtualHost *:80

6. 中途查找了一个SSI相关的知识,还加了下.html的后缀。把根目录给改过,结果.html能访问了,.php却不能访问了,哎,还是只能撤消回来。

7. 去找运维同事解决,未果。他也忙也不忍心一直耽搁别人。不过通过查看错误日志了解到了一些端倪。

tail -f access_log error_log

8. 发现很多文件都会去访问某个php文件,怀疑请求被转发掉了。然后想到了apache的.htaccess文件,去查看,终于知道了原因,果然原来请求已被路由至有错误的文件去了。

RewriteEngine On^MRewriteCond %{REQUEST_URI} !zq^MRewriteRule \.(pfx|p12|der|jks|rsa|cer|cert|crt|csr|pem|sql)$ - [F,L]^MRewriteRule ^rest/(.*)$   /rest.php/$1 [L]^MRewriteRule ^(app|wechat)/(.*)$   /uzone/rest.php/$1/$2 [L]#no rewrite sth#RewriteRule ^([a-z0-9_~%~.~+]+)/index([0-9]+).html /index.php\?$1&page=$2 [L]^MRewriteRule ^([a-z0-9_~%~.~+]+)/a.html  /index.php\?$1/$2 [L]^MRewriteRule ^([a-z0-9_~%~.~+]+)/a([0-9]+).html  /index.php\?$1/$2 [L]^MRewriteRule ^([a-z0-9_~%~.~+]+)/a([0-9]+).html\?(.*)    /index.php\?$1/$2&$3 [L]^MRewriteRule /([a-z0-9_~%~.~+]+)/index.html\?(.*)        /index.php\?$1&$2 [L]^MRewriteRule ^(.*)/u/([0-9]+)/(.*)$              /index.php\?u&$2&$3 [L]^MRewriteRule ^(.*)/u/([0-9]+)/(.*)/$     /index.php\?u&$2&$3 [L]^MRewriteRule ^(.*)/u/([0-9]+)$           /index.php\?u&$2 [L]^MRewriteRule ^(.*)/u/([0-9]+)/$          /index.php\?u&$2 [L]^MRewriteRule /([a-z0-9_~%~.~+]+)/index.html\?(.*)        /index.php\?$1&$2 [L]^MRewriteRule /([a-z0-9_~%~.~+]+)/index([0-9]+).html\?(.*)        /index.php\?$1&page=$2&$2 [L]^MRewriteRule ^channel/(.*)$  /index.php\?$1 [L]^MRewriteRule ^data/upes/images/(.*)$  /dataacc/ime.php\?%{QUERY_STRING} [L]^MRewriteRule ^data/cms/content/info/(.*)$ /dataacc/ime.php\?%{QUERY_STRING} [L]^MRewriteRule ^voices/record/(.*)$ /dacc/image.php\?%{QUERY_STRING} [L]^MRewriteRule ^pay/(.*)$   /index.php [L]^M^MOptions -Indexes^M^M# zhima v3^MRewriteCond %{QUERY_STRING} \bstate=v3@^MRewriteRule ^alipay/auth/.*$ alipay/auth_v3/ [QSA,L]^M

将该路由注释去除后,问题得以解决。

 

哎,总算完结。凡事还得自己努力啊!   JAVA还在好好学习中,我靠后面还有考试!

转载地址:http://scrul.baihongyu.com/

你可能感兴趣的文章
黑马day16 jquery&amp;属性过滤选择器
查看>>
新概念英语(1-49)At the butcher's
查看>>
springMVC新理解
查看>>
【iOS】UIWebView HTML5 扩展
查看>>
Codeforces 460 D. Little Victor and Set
查看>>
spring datasource和mybatis的datasource来源在哪里
查看>>
洛谷2017 5月月赛R1
查看>>
android开发环境搭建教程
查看>>
NAND flash和NOR flash的区别详解
查看>>
IIS Modules Overview
查看>>
数据结构 之 二叉堆(Heap)
查看>>
JNI之—— Eclipse配置C/C++开发环境
查看>>
绘制你的第一个图表(jquery-flot-line-chart)
查看>>
lombok在IntelliJ IDEA下的使用
查看>>
jQuery使用正则判断是否含有非法字符
查看>>
五------Jsp九大内置对象。
查看>>
ftk学习记(combox篇)
查看>>
算法笔记_219:泊松分酒(Java)
查看>>
前端面试汇总-20170512
查看>>
基于HTML5 Canvas实现用户交互
查看>>