們在訪問其它網站的時候可能都遇到過,當我們訪問某個頁面的時候,提示我們這個頁面不存在,比如訪問到頭條網站某個文章不存的時候,頭條的404頁面是這樣的:
那么在ThinkPHP中有沒有辦法實現呢?答案是:有的!
下面我們就以ThinkPHP3.2為例來一步一步實現這個功能。
第一步:創(chuàng)建 EmptyController.class.php 控制器,并創(chuàng)建一個 _empty 方法:
第二步: 創(chuàng)建 404 模板(在模板文件夾中創(chuàng)建 Empty 文件夾,再在 Empty 創(chuàng)建一個 index.html 文件):
第三步:在其它控制器中繼承 EmptyController 模塊:
大功告成!
現在你再訪問一個不存在的模塊,程序就會顯示到404頁面了(跳轉到 Empty 模塊中,顯示你創(chuàng)建的 index.html 頁面)。
謝謝你的閱讀,如果你有更好的方法或在應用過程中遇到問題可以在評論區(qū)提問或者直接私信我,我會定期回復,碼農劉小橋與你一起學習,共同進步。
站的URL層級結構和導航結構優(yōu)化之后,今天我們接著講站內優(yōu)化的其它內容。
網站地圖/sitemap
網站地圖有兩種版本;HTML版本,用來索引用戶瀏覽網站內容,針對用戶制作;XML版本,針對搜索引擎制作,用來集中提交網站鏈接,提升網站整體爬取效率。
制作地圖的方法,使用愛站SEO工具包,需要下載安裝;在工具包選擇網站地圖/sitemap選項添加網址;在抓取網址類型,選擇靜態(tài)URL后綴的類型,XML設置選擇stiemap格式,選擇.xml和.html后綴,然后點擊爬取,自動生成地圖文件了。
制作好兩個版本的地圖文件上傳至根目錄下,然后增加xml地圖首頁入口,通常建議在底部導航處增加,寫A標記,將標記放置在底部導航。
最后一步就是提交搜索引擎了,在搜索引擎的站長平臺提交;因為網站會經常更新,建議至少每周更新一次地圖,然后提交,目的是告訴搜索引擎網站有更新,讓蜘蛛主動來爬取。
robots.txt文件
robots.txt文件可以理解為是網站機器人或蜘蛛協議,該文件是搜索引擎蜘蛛抓取網站時讀取的第一個文件;只能放置在根目錄下;
常見命令:User-agent,指定搜索引擎制定規(guī)則;Allow,允許抓取的目錄或文件;Disallow,不允許抓取的目錄或文件;星號為通配符,指所有;根目錄和常更新目錄都不可以禁止搜索引擎的抓取,只要不禁止根目錄以及常更新欄目就不影響SEO。
robots.txt文件里面除了有這些命令之外,還要指定網站地圖的地址,用來提升整站的抓取效率和頻次。
404錯誤頁面
404錯誤頁面的作用是減少用戶跳出率,減少搜索引擎蜘蛛丟失率;
制作404錯誤頁面的要求是要有返回網站的鏈接,可以返回至首頁或欄目頁;不能使用強制跳轉功能,對搜索引擎不友好。
制作方法:扒別的網站404錯誤頁面代碼,替換里面返回鏈接、title、文字等,PS一張404圖片,然后打包放在一個文件夾里上傳至根目錄下。
最后在主機上設置404功能,指定404錯誤頁面的文件夾地址就搞定了。
301重定向
301重定向指把多個網站域名重定向至主推域名上,可以實現權重導入,適用于更換域名;
有的公司為了品牌保護注冊了多個不同后綴的域名,為了不讓域名閑置,他們會把所有域名做成相同內容網站,這種做法是錯誤的;會導致搜索引擎不收錄,最簡單的方法就是做一個網站,然后把其它域名重定向至這個網站域名即可。
單個網站解析主域名和3w子域名之后,把主域名重定向至3W子域名上,使首頁地址唯一,集中首頁權重。
總結:制作網站地圖提交站長平臺,robots.txt命令不能禁止根目錄和常更新欄目,設置404錯誤頁面和301重定向。
今天的內容就分享到這里,不懂的地方評論區(qū)留言;明天繼續(xù)分享代碼優(yōu)化內容,我是老虎,明天見。
次NGINX在嘗試處理客戶端請求時遇到錯誤,它都會返回一個錯誤。每個錯誤都包含一個HTTP響應代碼和一個簡短描述。錯誤通常通過簡單的默認HTML頁面顯示給用戶。
幸運的是,您可以配置NGINX以向您的站點或 Web 應用程序的用戶顯示自定義錯誤頁面。這可以使用 NGINX 的 error_page指令來實現,該指令用于定義將針對指定錯誤顯示的URI 。您還可以選擇使用它來修改發(fā)送給客戶端的響應標頭中的 HTTP 狀態(tài)代碼。
在本指南中,我們將展示如何配置NGINX以使用自定義錯誤頁面。
您可以將NGINX配置為使用單個自定義錯誤頁面來處理它返回給客戶端的所有錯誤。首先創(chuàng)建您的錯誤頁面。這是一個示例,一個顯示消息的簡單 HTML 頁面:
“Sorry, the page can't be loaded! Contact the site's administrator or support for assistance.” to a client.
示例 HTML Nginx 自定義頁面代碼。
<!DOCTYPE html><html><head><style type=text/css>* {
-webkit-box-sizing: border-box;
box-sizing: border-box;}body {
padding: 0;
margin: 0;}#notfound {
position: relative;
height: 100vh;}#notfound .notfound {
position: absolute;
left: 50%;
top: 50%;
-webkit-transform: translate(-50%, -50%);
-ms-transform: translate(-50%, -50%);
transform: translate(-50%, -50%);}.notfound {
max-width: 520px;
width: 100%;
line-height: 1.4;
text-align: center;}.notfound .notfound-error {
position: relative;
height: 200px;
margin: 0px auto 20px;
z-index: -1;}.notfound .notfound-error h1 {
font-family: 'Montserrat', sans-serif;
font-size: 200px;
font-weight: 300;
margin: 0px;
color: #211b19;
position: absolute;
left: 50%;
top: 50%;
-webkit-transform: translate(-50%, -50%);
-ms-transform: translate(-50%, -50%);
transform: translate(-50%, -50%);}@media only screen and (max-width: 767px) {
.notfound .notfound-error h1 {
font-size: 148px;
}}@media only screen and (max-width: 480px) {
.notfound .notfound-error {
height: 148px;
margin: 0px auto 10px;}.notfound .notfound-error h1 {
font-size: 120px;
font-weight: 200px;}.notfound .notfound-error h2 {
font-size: 30px;}.notfound a {
padding: 7px 15px;
font-size: 24px;}.h2 {
font-size: 148px;}}</style></head><body><div id="notfound">
<div class="notfound">
<h1>Sorry the page can't be loaded!</a></h1>
<div class="notfound-error">
<p>Contact the site's administrator or support for assistance.</p>
</div>
</div></div></body></html>
使用適當的名稱保存文件,例如error-page.html并關閉它。
接下來,將文件移動到您的文檔根目錄 ( /var/www/html/ )。如果該目錄不存在,您可以使用mkdir命令創(chuàng)建它,如下所示:
$ sudo mkdir -p /var/www/html/
$ sudo cp error-page.html /var/www/html/
然后使用error_page指令配置NGINX以使用自定義錯誤頁面。如圖所示,在/etc/nginx/snippets/下創(chuàng)建一個名為custom-error-page.conf的配置文件。
$ sudo mkdir /etc/nginx/snippets/
$ sudo vim /etc/nginx/snippets/custom-error-page.conf
向其中添加以下行:
error_page 404 403 500 503 /error-page.html;location = /error-page.html {
root /var/www/html;
internal;}
每次NGINX遇到任何指定的 HTTP 錯誤 404、403、500 和 503 時,此配置都會導致內部重定向到URI / error-page.html。位置上下文告訴NGINX在哪里可以找到錯誤頁面。
保存文件并關閉它。
現在在http上下文中包含該文件,以便所有服務器塊都使用/etc/nginx/nginx.conf文件中的錯誤頁面:
$ sudo vim /etc/nginx/nginx.conf
包含目錄告訴NGINX將配置包含在指定.conf文件中:
include snippets/custom-error-page.conf;
或者,您可以包含特定服務器塊(通常稱為vhost)的文件,例如/etc/nginx/conf.d/mywebsite.conf。在服務器上下文中添加上述包含指令: {}
保存您的NGINX配置文件并重新加載服務,如下所示:
$ sudo systemctl reload nginx.service
并從瀏覽器測試設置是否正常。
您還可以為NGINX中的每個 HTTP 錯誤設置不同的自定義錯誤頁面。
要在服務器上設置存儲庫,請運行以下命令:
$ sudo git clone https://github.com/denysvitali/nginx-error-pages /srv/http/default
$ sudo mkdir /etc/nginx/snippets/
$ sudo ln -s /srv/http/default/snippets/error_pages.conf /etc/nginx/snippets/error_pages.conf
$ sudo ln -s /srv/http/default/snippets/error_pages_content.conf /etc/nginx/snippets/error_pages_content.conf
接下來,在您的http上下文或每個服務器塊/虛擬主機中添加以下配置:
include snippets/error_pages.conf;
保存您的 NGINX 配置文件并重新加載服務,如下所示:
$ sudo systemctl reload nginx.service
此外,如果配置按預期工作,請從瀏覽器測試。在這個示例中,我們測試了 404 錯誤頁面。
這就是我們在本指南中為您提供的全部內容。NGINX 的error_page指令允許您在發(fā)生錯誤時將用戶重定向到定義的頁面或資源或 URL。它還可選地允許在對客戶端的響應中修改 HTTP 狀態(tài)代碼。
*請認真填寫需求信息,我們會在24小時內與您取得聯系。