標簽:站長經歷
WordPress技巧解決網頁搜索框無法使用手機輸入法中的“搜索”按鈕的問題
先森之前就發現,“成航先森”在手機上訪問使用搜索時,無法使用鍵盤上的“前往/搜索”按鈕。點擊沒有反應,必須要點擊網頁中的搜索按鈕才行。之前因為懶得管,就一直沒有解決這個問題,這兩天丑了點時間研究了一下,最后發現這個問題是分階段的。“前往”和“搜索”按鈕的問題手機中的輸入框,有時候右下角是“前往”,而有時候是“搜索”。先森起初以為是因為先森的搜索框顯示的是“前往”,所以無法使用這個按鈕。后來先森發現,寫一個簡單的html頁面,通過手機訪問,無論是“前往”還是“搜索”,都不會影響點擊該按鈕的效果。不過讓鍵盤顯示“搜索”還是要顯得專業一些。實現方法:<input type="search">搜索框的type必須是search。“前往”與“搜索”點擊輸入法中的“搜索”沒有反應的原因上面所說的,按鍵上無論顯示什么文字,都不會影響功能。然而先森的網站中,點輸入法上的按鈕是死活沒有作用,所以原因還是要繼續找。先森本以為是某個JS代碼導致了這個問題,所以先森把首頁保存到本地,一個個的刪除嘗試。花費了大概一個小時的時間,終于,先森確認跟JS代碼沒有任何關系。最后無意間刪了一個<base>標簽,結果發現竟然可以了,手機輸入法點擊“搜索”可以搜索了。罪魁禍首就是它:<base target="_blank">這個base標簽的作用是網頁中的每個鏈接都默認為新標簽頁打開,好不好用就不做累述了。刪除與恢復刪除這個<base>標簽就可以實現使用手機輸入法中的搜索按鈕效果,但是我們想要的新標簽頁打開網頁就沒有了。先森參考網上的JavaScript腳本,新寫了一段js代碼,從而實現相類似的效果。需要注意的是,不能簡單的給每個<a>標簽都增加上新標簽頁打開,因為有些地方不適合新標簽頁打開,比如頁碼,每點一次下一頁就新開一個窗口,訪客要瘋了吧?所以,當<a>標簽已經設置了本頁打開的需要排除,其他<a>標簽才加上_blank屬性。把下面的JavaScript代碼放在head某處:<script type="text/javascript">$(function(){ $('body a').each(function(){ if($(this).attr('target')!=='_self'){ $(this).attr('target','_blank');} });});</script>那么,你的網站搜索框能用手機的搜索按鈕嗎?
經驗雜筆贊!活動規則改動:新華社一帶一路點贊領100M流量 變為每日可領
關注公眾號之后 點擊菜單欄【領流量】然后分享給朋友或者分享到朋友圈(先森一般分享給自己),驗證手機號,提交即可。每日限量,今天沒有了的話,朋友們可以明天領取。流量非秒到,將在72小時到賬,三網用戶均可領取(但是實測還是秒到的)。活動更新為每日可領,新老用戶不限!本來是聯通、電信不限量的:電信、聯通不限量但貌似現在已經變更為移動、聯通、電信三網均不限量了,移動的同學可以試試。移動、聯通、電信全都有具體的領取流程,請看這里:5月全國流量活動:點贊“一帶一路”領100M流量
經驗雜筆iphone 5s拆機驚魂:先森只是為了換塊電池
先森的iphone 5s服役已經兩年了,最近嚴重感覺電池不經用了。經常提示著20%的電,彈窗讓選擇是否進入省電模式,當先森點完的時候再看電量,就只剩10%了,然后先森一罵娘就只剩1%了。還有充電的時候,經常性的越充越少,厲害了,word iphone 5s。所以,歷史的必然性讓先森選擇了換電池。在先森的基友的建議下,先森選擇了不買原裝電池,轉而買其他牌子的電池。這樣能便宜一些,而重要原因是,目測手機用不了多久了,沒必要花更多的錢。電池是在京東買的,如果選擇全球購的原裝是105元,先森選擇的是飛毛腿的,87元。畢竟在一堆非原裝電池的品牌里,飛毛腿還是一個認識的牌子。京東自營,所以第二天早上就到了。關于京東自營不等于自己經營的梗先森就不啰嗦了~周五上班,所以下班后才回家拆機換電池。這里小小的吐槽下,在距離下班還有8分鐘的時候,項目經理安排了一個任務,數據庫要導入七萬條未處理的數據,結果只能苦逼的加班了。。。。拆機驚魂光是為了把屏幕蓋掀開先森就整了好一會,畢竟是自己的手機,心疼。當然,心疼的原因也是沒錢換新的。這里提醒下,掀屏幕要從接近Home鍵的方向弄,然后要掀開一條縫,然后慢慢撬。并不用太擔心把零件翹壞,這點品質蘋果還是有的。一定要慢慢翹,吸盤吸的時候力不能太大,不然一下扯開了會把Home鍵后面的指紋解鎖排線扯斷。嚴重吐槽下飛毛腿的拆機說明,異常簡單,重點根本不提。蘋果的電池是用膠條粘緊的,這粘的特別的穩,先森撬了半天才弄下來。然后飛毛腿的電池直接就照著那個膠條貼上去了。先森在弄好之后,第一次開機,一摁開機鍵完全沒反應,臉都嚇白了。后來插上電源,再按開機,終于亮屏幕了。但是,正高興的和女票、基友宣布呢,開機完了發現屏幕上帶著很多條紋,觸屏點不動,指紋無法解鎖,蒙圈了。百度一看,說屏幕與主板的連線的四個螺絲長短不同,兩長兩短,短的相同,長的有一顆不能被磁鐵吸附,如果長的安裝在短的上面會把主板打穿~~先森裝回去的時候可沒管那么多,當時就嚇傻了好嗎~手抖著又把手機拆開,檢查了一下,好像沒我想的那么嚴重,發現可能是3個排線有一個沒有裝好的原因。趕緊再重新裝好重試開機。這次先森故意沒有安螺絲和指紋解鎖的擋板。結果發現屏幕沒問題,指紋依舊不能解鎖。最后一次,把螺絲擰好,指紋解鎖的也弄好,重新開機,終于恢復正常,激動。關于四個螺絲最后找到一個比較好的教程里的解釋,關于屏幕與主板連接的四個螺絲的位置。iPhone5s里面螺絲清晰位置圖警告:綠圈和藍圈標注的為長螺絲,且藍圈標注的是四顆中唯一一顆無磁螺絲;紅圈標注的為短螺絲。在安裝回去時,若誤把長螺絲安裝到紅圈標注的短螺絲孔位,將會打穿主板板層,造成數據總線損壞,導致開機藍屏無限重啟,直至電量耗盡。故務必在拆解時將螺絲分類收納整理,以免混淆。關于屏幕三個排線先森第一次開機就是因為忽略了三個排線之一,下圖中的紅框內排線。屏幕與主板的三個排線總結手機弄好之后,第一次用電非常不穩定,一開始用電很快,后來掉電速度就慢了。據說新電池都會有虛電,要把虛電用完之后再首充6-8小時,循環充放2-3次后電芯被充分激活。所以,先森深夜寫這篇博文,就是為了等手機虛電放完,手機正在旁邊放歌,屏幕亮起并亮度最大。最后,拆機有風險,開車需謹慎!
經驗雜筆刪除iPhone手機自動下載的IOS10系統安裝包
先森的手機是iPhone 5S,2014年國慶買的,到現在正好兩年了。陪先森走過大學時間的手機,怎么算都是老機型了,最近缺一直受到IOS 10更新的困擾。新系統就不要去折磨老人家了,折騰不起了。新買的ipad mini已經升級了,發現各種聲音都變了,很不習慣+不喜歡,所以先森的手機是非常不愿意更新的,但是進入系統設置一看,什么gui,竟然已經下載好了?!IOS10系統已下載有心想把系統安裝包刪除,可以拉到底部一看,只有安裝選項,所以只有暫時放棄了。只能選擇安裝刪除系統安裝包開始還不想管了,想著忍著不更新就行了,可是系統還過一段時間就提醒更新,煩不勝煩。再加上先森的iPhone 5S是16G的,實際能用的也就12G左右,所以先森有點心疼被占用的空間大小。所以先森去查看了一下系統用量,正好就找到了刪除系統安裝包的方法。儲存空間與icloud用量進入儲存空間后,就可以看到一個占用空間很靠前的應用,名字就是IOS 10:IOS 10選擇IOS 10,我們就可以非常爽的將其刪除了,占用量竟然高達1.1G,不刪你刪誰?刪除IOS 10系統安裝包禁止自動下載更新先森覺得這個功能就是個安慰,因為先森本身就沒有勾選,結果依舊被下載了。。。難道是BUG?進入iTunes Store與App Store,不要勾選“更新”這個自動下載項目即可,但是最好不要抱太大希望。iTunes Store與App Store最后好吧,先森實在是沒有什么寫的,國慶又懶得編輯文章,現在更新湊數了。
經驗雜筆解決FTP軟件FileZilla無法連接到服務器AUTH TLS的錯誤
今天一大早,先森又收到了阿里云的郵件、短信提醒“主機產品因超標消耗資源關停通知”,免費的果然不省心啊。起床后想下載今天的日志,看一下又是什么問題,結果打開FTP軟件FileZilla卻死活登錄不了。提示“命令: AUTH TLS;錯誤: 無法連接到服務器”,這讓先森急的,無疑是雪上加霜。FileZilla無法連接到服務器百度了一下,基本都說的是把傳輸模式改為主動模式,但是對于這種情況來說,好像并不湊效。同一種錯誤,還是有很多種情況的。最后,先森發現,針對這種錯誤,只需要在FileZilla的站點管理器中,將常規項“加密(E)”的“如果可用,使用顯式的FTP over TLS”改為“只使用普通FTP(不安全)”,然后再點擊連接就可以連接成功了:FileZilla加密方式修改只是,先森不明白的是,以前使用為什么沒有出現這種問題呢?最后,先森只能把問題歸結于網絡的原因了,因為先森現在已經離開學校了,第一次使用其他網絡登錄的。
資源下載, 經驗雜筆推薦一款文件比較工具:WinMerge
WinMerge也是一款在先森的電腦上安裝了很久的小工具了,現在分享給大家認識認識。有時候我們會遇到這種情況,有一個文件做了改動,比如style.css等代碼文件,過了一段時間后發現代碼沖突又忘了哪里做了改動。這個時候我們就可以使用這款軟件了,WinMerge可以對兩個相似的文件內容進行比較,將個文件中不同的內容非常顯眼的標注出來。其實WinMerge還能對兩個文件夾進行分析,排列出兩個文件夾中不同的文件,但先森覺得這個功能倒好像沒什么用。先森經歷最近先森遇到一個問題。先森的網站主題是自己修修改改一步步做起來的,主題修改一般都是在本地用XAMPP做好調試之后,再對服務器上的主題進行修改。但世事無絕對,各位WordPress站長也都清楚,WordPress后臺就可以對主題文件進行修改,有時候小的修改先森就直接在后臺修改了。這樣下來就有了服務器上的代碼和本地的代碼不同,尤其是先森的style.css代碼,服務器上的是壓縮過的,本地上的是未壓縮的,帶有注釋。這樣一來,先森就有點懵逼了,因為服務器上的改動小,根本不記得改動了哪里,手動的找的話實在有點過于麻煩了。這個時候,WinMerge就幫了先森大忙了。先森將本地的style.css壓縮后再格式化,再將服務器上的style.css格式化,使兩個文件格式相同后,再用WinMerge一對比,增加了什么代碼,刪除了什么代碼就一目了然了。軟件使用安裝WinMerge后,會生成快捷圖標,也會在鼠標右鍵生成快捷鍵。右鍵快捷鍵非常有用,選中兩個文件,右鍵點擊WinMerge就可以對這兩個文件進行對比了。右鍵快捷鍵除了選中兩個文件后右鍵點擊快捷鍵對比,也可以直接打開軟件,然后選擇兩個文件進行對比:選擇對比兩個文件選擇好兩個文件后就可以進行對比了。WinMerge是以行為單位進行對比,所以壓縮過的文件最好進行反解壓格式化后對比。WinMerge對存在不同的行以黃色標注,不同處再用淡黃色標注,左側為類似縮略圖的位置示意,右側為兩個文件的內容。上面可以選擇跳轉到上下處不同,下面是不同處的內容直接顯示。總之,非常的清晰明了。以兩個style.css文件為例當然,顏色什么的都可以通過設置根據自己的喜好更改,更多使用技巧就靠各位自己去摸索吧,先森就不在多說了。軟件下載WinMerge好像有自己的官網,大家可以百度一下WinMerge就能找到下載。先森也從官網上下載下來了一個最新版,大家也可以在這直接下載。先森解壓看了一下,好像還是個綠色版的。百度云下載:http://pan.baidu.com/s/1c1IVovI 密碼: chxs
系統運維, 經驗雜筆.htaccess原來如此有用
近期幫助一位站長解決了網站無法訪問的問題, 顯示錯誤“The requested URL '/' was not found on this server.( 請求的URL(對象)在服務器找不到 )”。結果,原因僅僅是因為網站根目錄沒有.htaccess文件。.htaccess文件就此,先森開始重新認識.htaccess文件。發現其實先森本站上對.htaccess的運用所發布的文章都已經有幾篇了:虛擬主機屏蔽IP地址或IP段的方法忘給主域名解析后對301跳轉的一些研究Apache上WordPress免插件生成適應360站長平臺sitemap.xml的php代碼認識.htaccess.htaccess的運用竟然如此之多,先森不禁有點吃驚。趕緊百度安利一波關于htaccess文件的知識。htaccess文件是Apache服務器中的一個配置文件,它負責相關目錄下的網頁配置。通過htaccess文件,可以幫我們實現:網頁301重定向、自定義404錯誤頁面、改變文件擴展名、允許/阻止特定的用戶或者目錄的訪問、禁止目錄列表、配置默認文檔等功能。大部分的主機供應商都支持自定義,htaccess文件,先森使用的阿里云虛擬主機,.htaccess文件還是自己上傳的。建站初期,我們只需要有個.htaccess文件存在即可,里面放些初始配置語句即可:<IfModule mod_rewrite.c>RewriteEngine OnRewriteBase /RewriteRule ^index\.php$ - [L]RewriteCond %{REQUEST_FILENAME} !-fRewriteCond %{REQUEST_FILENAME} !-dRewriteRule . /index.php [L]</IfModule>其實很簡單的就可以看出,上面這段初始配置中,就包括了定義index.php文件為首頁默認文件的相關配置,這也就是那位站長網站不能訪問的原因了。先森上面提到的三篇文章就分別使用了允許/阻止特定的用戶或者目錄的訪問、網頁301重定向、改變文件擴展名的功能,.htaccess的功能可謂非常強大。在使用虛機不能接觸.conf配置文件的情況下,.htaccess能給我們提供不小的便利。一些雜談先森培訓紅帽Linux,在培訓到RHCE的時候,終于接觸到Apache的配置了。老師教了我們如何在服務端主機上配置虛擬主機,自然接觸到了自定義配置文件。自定義配置文件是在/etc/httpd/conf.d/下,隨便創建一個以.conf結尾的文件即可。其中涉及到的301重定向和禁止訪問,先森看那些配置語句,是越看越熟悉,原來和.htaccess的是一樣的。先森曾經對WordPress緩存插件WP Super Cache的工作方式產生了疑問,它是如何訪客訪問的頁面是其保存在另一個文件夾內的文件的呢,明明沒有跳轉什么的?先森鉆了很久的牛角尖,而后頓悟,在其設置中有寫入.htaccess的規則,就是這些規則讓訪問的鏈接與其緩存文件對應。不過htaccess再怎么有用,它也只是分布式配置文件,要是httpd.conf中把開關一關,它也就沒用了。所以有條件的還是直接折騰服務器的配置文件吧,這樣更有意思。如果你還是一名在校大學生,可以試試騰訊云的學生機:直播了一段用騰訊云校園計劃1元購買免費域名+專享服務器及安全認證
系統運維, 經驗雜筆用Linux分析日志查看產生大量404的IP
先森網站被阿里云通知超標消耗資源的時候查看網站的日志,發現有幾個IP一直在訪問一個不存在的目錄,產生了大量的404。查了半天沒有查出這些IP與先森使用的CDN等服務有關,看來不是什么好貨了,趕緊用.htaccess屏蔽IP。但是有個問題,日志文件是以行為記錄,一行對應一個請求,一個日志經常成千上萬行,光靠眼睛看不能準確的識別出這些做壞的IP到底有哪些。先森一直在找有沒有能直接分析出來的日志分析工具,但搜到的都是針對搜索引擎蜘蛛痕跡做分析的,只得作罷。近期先森在培訓紅帽Linux,經過學習,發覺Linux確實強大。而老師今天教了正則表達式,再加上以前教的各類命令,發現其實用Linux就能很好的做日志分析了。下面來分享下相關經驗。linux命令首先,查看日志,分析需要篩選的內容。先森貼出其中404的一例:60.191.139.121 - - [09/May/2016:00:33:32 +0800] "GET /_detect HTTP/1.0" 404 209 "-" "-" qxu123456789.my3w.com text/html "/usr/home/qxu123456789/htdocs/_detect" 1048需要注意的是,每行的狀態碼前后是有一個空格的,這個可以用來區分正常訪問中單純的404數字。命令方面其實很簡單,一句搞定:# cat web.log| grep -E ' 404 '|awk '{print $1}'|sort |uniq先森的日志回車后,最終顯示了下面三個IP:222.73.199.10560.191.139.12161.160.245.190這樣就確認了有哪些IP在對網站造成404訪問了,這時候用.htaccess將其屏蔽即可。如果不會,可以參考先森這篇文章:虛擬主機屏蔽IP地址或IP段的方法下面對上面的代碼做些解釋。cat是將web.log的內容作為標準輸出到設備,也就是查看文件內容。|是管道符,將左邊的輸出連接到右邊的輸入,也就是把日志內容傳給下一條命令。gerp -E,相當于egerp,后面跟的是正則表達式,這里我們查找的內容比較簡單,所以暫時不用正則表達式。這條命令用來篩選出有404的行。awk是做數據處理的,是一種編程語言,功能很強大。它可以用-F確定分隔符,默認是空格,這也真是我們需要的。以空格為分隔符,將每行分成了很多段,而后面的printf $1就是輸出第一段,也就是我們的IP地址。sort是排序,這里就是對我們的IP地址進行排序。uniq是去重,也就是將重復的IP地址去除,留下我們想要屏蔽的IP地址。一些延伸上面僅僅是找出404訪問IP,實際上我們可能有這種需求:找去所有的40X的訪問IP,修改上面的一個字符即可實現:# cat web.log| grep -E ' 40. '|awk '{print $1}'|sort |uniq.點符號在Linux正則表達式中是占位符,表示任意的一個字符。有了上面的這種需求,可能我們除了想看IP地址,還想知道它的狀態碼是多少,再修改一下就好:# cat web.log| grep -E ' 40. '|awk '{print $1,$9}'|sort |uniq上面在awk的輸出增加了一個$9,表示已空格作為分隔的第九段。其實想看什么數據,只要以空格為界,數出其所在段位即可。但需要注意的是,時間段不要用來數出,這樣會導致后面的去重沒有什么效果,因為時間都是不同的。Linux操作最后不得不說Linux確實強大,但是它的英文也讓先森很吃不消啊。希望能夠學好,向著運維的方向越走越遠。
系統運維, 經驗雜筆虛擬主機屏蔽IP地址或IP段的方法
先森前兩天內連收三封阿里云計算發的主機產品因超標消耗資源關停通知,心都要碎了,要知道萬網免費云虛擬主機每個月只能手動重啟3次啊。先森這時候已經重啟了兩次了,而且是月初。主機產品因超標消耗資源關停通知分析通過查看日志,雖然疑似是wp-cron.php的問題,但是同時也發現了幾個比較可疑的IP地址,不停的訪問先森網站上不存在的目錄地址,造成大量的404訪問。先森開始嘗試著使用百度云加速的WAF黑名單來防止這幾個IP,但是實踐證明并沒有用,可能是黑客用某種手段還是捕捉到了先森網站的真實IP,直接進行訪問的。既然如此,就只有從主機方面下手了。屏蔽IP雖然是虛擬主機,但還好的是,我們也有屏蔽IP訪問的手段。因為WordPress是PHP語言編寫的,所以先森當初也選擇的是Linux主機,所以這里也是針對Linux主機的方法。Linux主機可以通過 .htaccess文件屏蔽IP。如下:RewriteEngine onRewriteBase /Order Deny,Allow #拒絕開關,allow表示拒絕訪問Deny from 123.245.123.12 #輸入要屏蔽的IP地址Deny from 123.245.123 # 屏蔽IP段關于wp-cron.php因為wp-cron.php而導致的超標消耗系統資源,先森還是感到很納悶的。看了下以前的日志,也存在很多wp-cron.php的痕跡,但是一直都沒有什么問題,突然來個超標,令先森不明所以。當然,wp-cron.php確實是比較消耗系統資源的,這點是比較肯定的。但wp-con.php是當網站批量更新,定時發布,還有用戶點擊才會觸發。一般受影響的是流量多的大站,先森是的流量可沒有多少。不過再沒有找到原因之前,還是只有把它先禁用了。在wp-config.php中添加如下代碼:define('DISABLE_WP_CRON', true);
WordPress技巧修復WordPress郵件回復BUG后對手機QQ郵箱的一些發現
先森曾經修改美化了WordPress評論的回復郵件提醒的簡單模板,然后沒過多久,先森就發現這套模板有個BUG。這個BUG就是當別人在先森網站上評論后,先森或者其他人回復時,給評論者的回復郵件如果用手機QQ郵箱打開的話,打開后只能看到一行“您在成航先森的留言有了新的回復:”,回復內容什么的都看不到,而PC端或手機上其他地方打開郵件則正常。手機QQ郵箱BUG解決BUG首先先森找了一位站長,讓他在手機QQ郵箱上看了下,這種問題也存在,所以排除先森自己手機是個例。過了很長時間,先森才有時間研究解決這個BUG,發現其實問題原因很簡單。先森的WordPress郵件回復改版,是在郵箱里面扒的張戈博客的代碼,所以復制的時候,郵件內容頂部代碼復制的是這樣的:<td style="background: #08c; color: #fff; font-family: 微軟雅黑,verdana, arial; font-size:15px;line-height: 35px;"><strong> 您在成航先森的留言有了新的回復:</strong><iframe id="tmp_downloadhelper_iframe" style="display: none;"></iframe></td>先森郵件回復出現BUG的罪魁禍首,就是上面的iframe標簽。先森是不知道張戈加這個iframe是要做什么的,反正去除后郵件就正常了。在找BUG原因的時候,先森更加覺得張戈牛逼了,把郵件保存為eml出來后,內容全是加密的:郵件內容加密手機QQ郵箱BUG是解決了,但是先森又不得不想另一個問題:為什么只有手機QQ郵箱會出現這個問題?不知道在使用手機QQ郵箱的用戶有多少,反正先森發現站長們應該還是有很多在用的。先森在解決了BUG之后,發現手機QQ郵箱在內容顯示上與其他地方打開有細微的不同:手機QQ郵箱iPhone自帶郵件可以看到,同一封郵件,在手機QQ郵箱中打開與在iPhone自帶郵件中打開,回復內容部分的顯示是不同的。其中iPhone自帶郵件的顯示效果才是我們所預想的。檢查代碼后發現,回復內容部分,使用的標簽是<blockquote>標簽,而它的CSS樣式,是單獨寫在了一個內鏈接里面的:<style type="text/css">.qmbox blockquote{width: 94%;color: #8b8b8b;margin: 0 auto;padding: 10px;clear: both;border: 1px solid #ebebeb;}.qmbox style, .qmbox script, .qmbox head, .qmbox link, .qmbox meta {display: none !important;}</style>經過排查,將css樣式直接寫在標簽里面,則顯示正常。總結先森不知道手機QQ郵箱的這種設定,是自身軟件沒有設計好呢,還是故意如此設定。若是故意如此,真不知道這還有什么深意。但不管怎樣,手機QQ郵箱的使用群體應該還是有的,為了不影響我們的用戶體驗,各位站長們也趕緊瞧瞧你的WordPress評論回復在手機QQ郵箱中的顯示是否正常吧。

川公網安備 51011202000104號