apache環境之困擾,Rewrite致使沒法加載多個不一樣的.html文件

  又是一個項目,爲訪問多個純靜態html頁面h5遊戲頁,可以作一些簡單分享和跳轉便可。本來是一個簡單得不能的項目,可是卻多生了事端。php

  我按照apache的慣例,將文件上傳到服務器的DocumentRoot目錄,進行測試了。css

  剛開始使用目錄下index.html訪問該遊戲,徹底OK,測了一段時間,換成另外一個文件index2.html,卻不行了。報了500錯誤。html

  我覺得或者咱們都覺得是html頁面寫錯了,因而反覆改語法,再試再試,結果卻還是不行。最後到只加載一行<h1>hello, world</h1>,也不行。焦頭爛額啊,咋辦呢?web

1. 另外在服務器上單獨新建一個a.html。輸入簡單的頁面元素訪問,Not ok,500錯誤依然!sql

2. 將一樣的文件拿到本地環境運行,跑得飛快。這時,已經開始懷疑是服務器的問題了,可是沒有辦法,想多試試本地,繼續在本地新建文件訪問,結果本地服務器報了個403錯誤,亂七八糟的搞了一通,沒有改好。算了,仍是回測試服務器弄吧。apache

3. 新建readme.txt訪問,結果沒有訪問到。這最終被證實是大小寫沒有寫對的緣由,哎呀,我去。服務器

4. 新建test.php文件訪問,結果一切正常。從這一刻開始,認爲服務器只解析.php文件了。可是.js文件卻又是能訪問的,這。。。app

<?php
    echo "hello, world!";

5. 查看httpd-vhosts.conf文件。確認沒有什麼特殊的配置。運維

<VirtualHost *:80>
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 400 /errpage/400.html
ErrorDocument 403 /errpage/403.html
ErrorDocument 404 /errpage/404.html
<IfModule mod_deflate.c>
    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
</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文件ide

# 以下參數是經過命令 cat /etc/httpd/conf/httpd.conf | grep -v "^#" | grep -v "^$" 篩選出來的
ServerTokens OS ServerRoot
"/etc/httpd" PidFile run/httpd.pid Timeout 120 KeepAlive Off MaxKeepAliveRequests 100 KeepAliveTimeout 15 <IfModule prefork.c> StartServers 8 MinSpareServers 5 MaxSpareServers 20 ServerLimit 256 MaxClients 256 MaxRequestsPerChild 4000 </IfModule> <IfModule worker.c> StartServers 2 MaxClients 150 MinSpareThreads 25 MaxSpareThreads 75 ThreadsPerChild 25 MaxRequestsPerChild 0 </IfModule> Listen 80 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/$1 [L]^M
RewriteRule ^(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]^M
RewriteRule ^([a-z0-9_~%~.~+]+)/a.html  /index.php\?$1/$2 [L]^M
RewriteRule ^([a-z0-9_~%~.~+]+)/a([0-9]+).html  /index.php\?$1/$2 [L]^M
RewriteRule ^([a-z0-9_~%~.~+]+)/a([0-9]+).html\?(.*)    /index.php\?$1/$2&$3 [L]^M
RewriteRule /([a-z0-9_~%~.~+]+)/index.html\?(.*)        /index.php\?$1&$2 [L]^M
RewriteRule ^(.*)/u/([0-9]+)/(.*)$              /index.php\?u&$2&$3 [L]^M
RewriteRule ^(.*)/u/([0-9]+)/(.*)/$     /index.php\?u&$2&$3 [L]^M
RewriteRule ^(.*)/u/([0-9]+)$           /index.php\?u&$2 [L]^M
RewriteRule ^(.*)/u/([0-9]+)/$          /index.php\?u&$2 [L]^M
RewriteRule /([a-z0-9_~%~.~+]+)/index.html\?(.*)        /index.php\?$1&$2 [L]^M
RewriteRule /([a-z0-9_~%~.~+]+)/index([0-9]+).html\?(.*)        /index.php\?$1&page=$2&$2 [L]^M
RewriteRule ^channel/(.*)$  /index.php\?$1 [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還在好好學習中,我靠後面還有考試!

相關文章
相關標籤/搜索