Warning: error_log(/data/www/wwwroot/hmttv.cn/caches/error_log.php): failed to open stream: Permission denied in /data/www/wwwroot/hmttv.cn/phpcms/libs/functions/global.func.php on line 537 Warning: error_log(/data/www/wwwroot/hmttv.cn/caches/error_log.php): failed to open stream: Permission denied in /data/www/wwwroot/hmttv.cn/phpcms/libs/functions/global.func.php on line 537
們在訪問其它網(wǎng)站的時候可能都遇到過,當(dāng)我們訪問某個頁面的時候,提示我們這個頁面不存在,比如訪問到頭條網(wǎng)站某個文章不存的時候,頭條的404頁面是這樣的:
那么在ThinkPHP中有沒有辦法實現(xiàn)呢?答案是:有的!
下面我們就以ThinkPHP3.2為例來一步一步實現(xiàn)這個功能。
第一步:創(chuàng)建 EmptyController.class.php 控制器,并創(chuàng)建一個 _empty 方法:
第二步: 創(chuàng)建 404 模板(在模板文件夾中創(chuàng)建 Empty 文件夾,再在 Empty 創(chuàng)建一個 index.html 文件):
第三步:在其它控制器中繼承 EmptyController 模塊:
大功告成!
現(xiàn)在你再訪問一個不存在的模塊,程序就會顯示到404頁面了(跳轉(zhuǎn)到 Empty 模塊中,顯示你創(chuàng)建的 index.html 頁面)。
謝謝你的閱讀,如果你有更好的方法或在應(yīng)用過程中遇到問題可以在評論區(qū)提問或者直接私信我,我會定期回復(fù),碼農(nóng)劉小橋與你一起學(xué)習(xí),共同進步。
站的URL層級結(jié)構(gòu)和導(dǎo)航結(jié)構(gòu)優(yōu)化之后,今天我們接著講站內(nèi)優(yōu)化的其它內(nèi)容。
網(wǎng)站地圖/sitemap
網(wǎng)站地圖有兩種版本;HTML版本,用來索引用戶瀏覽網(wǎng)站內(nèi)容,針對用戶制作;XML版本,針對搜索引擎制作,用來集中提交網(wǎng)站鏈接,提升網(wǎng)站整體爬取效率。
制作地圖的方法,使用愛站SEO工具包,需要下載安裝;在工具包選擇網(wǎng)站地圖/sitemap選項添加網(wǎng)址;在抓取網(wǎng)址類型,選擇靜態(tài)URL后綴的類型,XML設(shè)置選擇stiemap格式,選擇.xml和.html后綴,然后點擊爬取,自動生成地圖文件了。
制作好兩個版本的地圖文件上傳至根目錄下,然后增加xml地圖首頁入口,通常建議在底部導(dǎo)航處增加,寫A標(biāo)記,將標(biāo)記放置在底部導(dǎo)航。
最后一步就是提交搜索引擎了,在搜索引擎的站長平臺提交;因為網(wǎng)站會經(jīng)常更新,建議至少每周更新一次地圖,然后提交,目的是告訴搜索引擎網(wǎng)站有更新,讓蜘蛛主動來爬取。
robots.txt文件
robots.txt文件可以理解為是網(wǎng)站機器人或蜘蛛?yún)f(xié)議,該文件是搜索引擎蜘蛛抓取網(wǎng)站時讀取的第一個文件;只能放置在根目錄下;
常見命令:User-agent,指定搜索引擎制定規(guī)則;Allow,允許抓取的目錄或文件;Disallow,不允許抓取的目錄或文件;星號為通配符,指所有;根目錄和常更新目錄都不可以禁止搜索引擎的抓取,只要不禁止根目錄以及常更新欄目就不影響SEO。
robots.txt文件里面除了有這些命令之外,還要指定網(wǎng)站地圖的地址,用來提升整站的抓取效率和頻次。
404錯誤頁面
404錯誤頁面的作用是減少用戶跳出率,減少搜索引擎蜘蛛丟失率;
制作404錯誤頁面的要求是要有返回網(wǎng)站的鏈接,可以返回至首頁或欄目頁;不能使用強制跳轉(zhuǎn)功能,對搜索引擎不友好。
制作方法:扒別的網(wǎng)站404錯誤頁面代碼,替換里面返回鏈接、title、文字等,PS一張404圖片,然后打包放在一個文件夾里上傳至根目錄下。
最后在主機上設(shè)置404功能,指定404錯誤頁面的文件夾地址就搞定了。
301重定向
301重定向指把多個網(wǎng)站域名重定向至主推域名上,可以實現(xiàn)權(quán)重導(dǎo)入,適用于更換域名;
有的公司為了品牌保護注冊了多個不同后綴的域名,為了不讓域名閑置,他們會把所有域名做成相同內(nèi)容網(wǎng)站,這種做法是錯誤的;會導(dǎo)致搜索引擎不收錄,最簡單的方法就是做一個網(wǎng)站,然后把其它域名重定向至這個網(wǎng)站域名即可。
單個網(wǎng)站解析主域名和3w子域名之后,把主域名重定向至3W子域名上,使首頁地址唯一,集中首頁權(quán)重。
總結(jié):制作網(wǎng)站地圖提交站長平臺,robots.txt命令不能禁止根目錄和常更新欄目,設(shè)置404錯誤頁面和301重定向。
今天的內(nèi)容就分享到這里,不懂的地方評論區(qū)留言;明天繼續(xù)分享代碼優(yōu)化內(nèi)容,我是老虎,明天見。
次NGINX在嘗試處理客戶端請求時遇到錯誤,它都會返回一個錯誤。每個錯誤都包含一個HTTP響應(yīng)代碼和一個簡短描述。錯誤通常通過簡單的默認HTML頁面顯示給用戶。
幸運的是,您可以配置NGINX以向您的站點或 Web 應(yīng)用程序的用戶顯示自定義錯誤頁面。這可以使用 NGINX 的 error_page指令來實現(xiàn),該指令用于定義將針對指定錯誤顯示的URI 。您還可以選擇使用它來修改發(fā)送給客戶端的響應(yīng)標(biāo)頭中的 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>
使用適當(dāng)?shù)拿Q保存文件,例如error-page.html并關(guān)閉它。
接下來,將文件移動到您的文檔根目錄 ( /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 時,此配置都會導(dǎo)致內(nèi)部重定向到URI / error-page.html。位置上下文告訴NGINX在哪里可以找到錯誤頁面。
保存文件并關(guān)閉它。
現(xiàn)在在http上下文中包含該文件,以便所有服務(wù)器塊都使用/etc/nginx/nginx.conf文件中的錯誤頁面:
$ sudo vim /etc/nginx/nginx.conf
包含目錄告訴NGINX將配置包含在指定.conf文件中:
include snippets/custom-error-page.conf;
或者,您可以包含特定服務(wù)器塊(通常稱為vhost)的文件,例如/etc/nginx/conf.d/mywebsite.conf。在服務(wù)器上下文中添加上述包含指令: {}
保存您的NGINX配置文件并重新加載服務(wù),如下所示:
$ sudo systemctl reload nginx.service
并從瀏覽器測試設(shè)置是否正常。
您還可以為NGINX中的每個 HTTP 錯誤設(shè)置不同的自定義錯誤頁面。
要在服務(wù)器上設(shè)置存儲庫,請運行以下命令:
$ 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上下文或每個服務(wù)器塊/虛擬主機中添加以下配置:
include snippets/error_pages.conf;
保存您的 NGINX 配置文件并重新加載服務(wù),如下所示:
$ sudo systemctl reload nginx.service
此外,如果配置按預(yù)期工作,請從瀏覽器測試。在這個示例中,我們測試了 404 錯誤頁面。
這就是我們在本指南中為您提供的全部內(nèi)容。NGINX 的error_page指令允許您在發(fā)生錯誤時將用戶重定向到定義的頁面或資源或 URL。它還可選地允許在對客戶端的響應(yīng)中修改 HTTP 狀態(tài)代碼。
*請認真填寫需求信息,我們會在24小時內(nèi)與您取得聯(lián)系。