您的位置:老鐵SEO > 站長新聞 >

如何讓apache支持.htaccess 解決Internal Server Error The server …錯誤

文章來源:未知

作者:老鐵SEO

人氣:13

2019-10-14

今天我把一個論壇程序的網站從香港服務器搬家到日本服務器,原香港服務器為wds2008,搬家到linux系統,無奈各種不成功,我在本地環境打開測試,導入數據庫后打開發現報錯,應該是服務器內部錯誤,提示

Internal Server Error

The server encountered an internal error or misconfiguration and was unable to complete your request.

Please contact the server administrator, admin@sky00.com and inform them of the time the error occurred, and anything you might have done that may have caused the error.

More information about this error may be available in the server error log.

我看了下這里網站里的所有東西都是這樣報錯,就是圖片和TXT也打不開,然后查看了一下程序發現里面有三個文件.htaccess、httpd.ini、nginx.conf,我想應該是這幾個家伙在作怪,首先想到的就是.htaccess這個分布文件,將其刪除,果斷打開網站了,那么找到原因了,把刪除了的找回來,去apache里開啟.htaccess就好了,下面是開啟方法:

在apache配置文件httpd.conf中找到

Options FollowSymLinks 
AllowOverride None 

有的版本是這樣寫的

Options FollowSymLinks ExecCGI Indexes
AllowOverride None

總之不管怎么寫,你只需要把下面的

AllowOverride None改為AllowOverride All

12

然后在找到

LoadModule rewrite_module modules/mod_rewrite.so

把這個前面的“#”號去掉,就是去掉注釋,然后重啟apache.搞定!

 

下面記載點.htaccess的寫法

htaccess 寫法


  Apache中的.htaccess(或者”分布式配置”了針對目錄改變配置的方法,即,在特定的文檔目錄中放置包含或多個指令的,以作用于此目錄及其子目錄。作為,所能的命令受到限制。***Apache的AllowOverride指令來設置。

子目錄中的指令會籠蓋更高級目錄或者主器配置中的指令。

.htaccess必需以ASCII模式上傳,最好將其權限設置為644。

錯誤文檔的定位

常用的客戶端哀求錯誤返回代碼:
401 Authorization Required
403 Forbidden
404 Not Found
405 Method Not Allowed
408 Request Timed Out
411 Content Length Required
412 Precondition Failed
413 Request Entity Too Long
414 Request URI Too Long
415 Unsupported Media Type

  常見的器錯誤返回代碼:
  500 Internal Server Error

利用.htaccess指定事先制作好的錯誤提醒頁面。一般下,人們專門設立目錄,例如errors放置頁面。然后再.htaccess中,加入如下的指令:

ErrorDocument 404 /errors/notfound.html
ErrorDocument 500 /errors/internalerror.html

一條指令一行。上述第一條指令的意思是對于404,也找到所的文檔的得顯示頁面為/errors目錄下的notfound.html頁面。不難看出語法格局為:

ErrorDocument 錯誤代碼 /目錄名/名.擴展名

所提示的很少的話,不必專門制作頁面,直接在指令中HTML號了,例如下面例子:

ErrorDocument 401 “你權限訪問該頁面,請拋卻!”

  文檔訪問的密碼保護

要利用.htaccess對某個目錄下的文檔設定訪問和對應的密碼,首先要做的是生成.htpasswd的文本文檔,例如:

zheng:y4E7Ep8e7EYV

這里密碼經由加密,找些工具將密碼加密成.htaccess的編碼。該文檔最好不要放在www目錄下,建議放在www根目錄文檔之外,這樣更為安全些。

有了授權文檔,在.htaccess中加入如下指令了:

AuthUserFile .htpasswd的器目錄
AuthGroupFile /dev/null (授權訪問的目錄)
AuthName EnterPassword
AuthType Basic (授權類型)

是的主人,應該處處為著想。 —— 雷鋒
require user wsabstract (允許訪問的,但愿表中都允許, require valid-user)

注,括號部門為學習添加的注釋

拒絕來自某個IP的訪問

我不想某個政府部門訪問到站點的,那.htaccess中加入該部門的IP而將它們拒絕在外。

例如:

order allow,deny
deny from 210.10.56.32
deny from 219.5.45.
allow from all

第二行拒絕某個IP,第三行拒絕某個IP段,也219.5.45.0~219.2.45.255

想要拒絕人?用deny from all好了。不止用IP,也用域名來設定。

  保護.htaccess文檔

在.htaccess來設置目錄的密碼保護時,它包含了密碼的路徑。從安全考慮,有必要把.htaccess也保護起來,不讓別人看到其中的。雖然用其他做到這點,好比文檔的權限。不外,.htaccess本身也能做到,只需加入如下的指令:

order allow,deny
deny from all

URL轉向

可能對重新規劃,將文檔了遷移,或者更改了目錄。這,來自搜索引擎或者其他鏈接過來的訪問就可能犯錯。這種下,如下指令來完成舊的URL自動轉向到新的:

Redirect /舊目錄/舊文檔名 新文檔的

或者整個目錄的轉向:

Redirect 舊目錄 新目錄

改變缺省的首頁

一般下缺省的首頁名有default、index等。不外,有些目錄中沒出缺省,而是某個特定的名,好比在pmwiki中是 pmwiki.php。這種下,要記住名來訪問很麻煩。在.htaccess中等閑的設置新的缺省名:

DirectoryIndex 新的缺省名

也列出多個,順序表明它們之間的優先級別,例如:

DirectoryIndex filename.html index.cgi index.pl default.htm

防止盜鏈

不喜歡別人在的網頁上連接的、文檔的話,也htaccess的指令來做到。

所的指令如下:

RewriteEngine on
RewriteCond %{ HTTP_REFERER } !^$
RewriteCond %{ HTTP_REFERER } !^http://(www.)?mydomain.com/.*$ [NC]
RewriteRule .(gif&line;jpg)$ – [F]

覺得讓別人的頁面開個天窗不好看,那用一張來代替:

RewriteEngine on
RewriteCond %{ HTTP_REFERER } !^$
RewriteCond %{ HTTP_REFERER } !^http://(www.)?mydomain.com/.*$ [NC]
RewriteRule .(gif&line;jpg)$ http://www.mydomain.com/替代名 [R,L]

其它補充:
在給出如何配置Apache支持.htaccess文件之前,首先申明一下:使用.htaccess文件,會降低httpd服務器的一點性能。

配置方法
找到Apache的httpd.conf配置文件,編輯器打開。

//找到
<Directory />
Options FollowSymLinks
AllowOverride None
</Directory>

//修改為

<Directory />
Options FollowSymLinks
AllowOverride All
</Directory>

//就可以了

/*
如果需要使用.htaccess以外的其他文件名,可以用AccessFileName指令來改變。
例如,需要使用.config ,則可以在服務器配置文件中按以下方法配置:
*/
AccessFileName .config  通常,.htaccess文件使用的配置語法和主配置文件一樣。AllowOverride指令按類別決定了.htaccess文件中哪些指令才是有效的。

(不)使用.htaccess文件的場合
一般情況下,不應該使用.htaccess文件,除非你對主配置文件沒有訪問權限。有一種很常見的誤解,認為用戶認證只能通過.htaccess文件實現,其實并不是這樣,把用戶認證寫在主配置文件中是完全可行的,而且是一種很好的方法。
.htaccess文件應該被用在內容提供者需要針對特定目錄改變服務器的配置而又沒有root權限的情況下。如果服務器管理員不愿意頻繁修改配置,則可以允許用戶通過.htaccess文件自己修改配置,尤其是ISP在同一個機器上運行了多個用戶站點,而又希望用戶可以自己改變配置的情況下。
雖然如此,一般都應該盡可能地避免使用.htaccess文件。任何希望放在.htaccess文件中的配置,都可以放在主配置文件的段中,而且更高效。
避免使用.htaccess文件有兩個主要原因。
首先是性能。如果AllowOverride啟用了.htaccess文件,則Apache需要在每個目錄中查找.htaccess文件,因此,無論是否真正用到,啟用.htaccess都會導致性能的下降。另外,對每一個請求,都需要讀取一次.htaccess文件。
還有,Apache必須在所有上級的目錄中查找.htaccess文件,以使所有有效的指令都起作用,所以,如果請求/ctusky/ctu/sky中的頁面,Apache必須查找以下文件:

/.htaccess
/ctusky/.htaccess
/ctusky/ctu/.htaccess
/ctusky/ctu/sky/.htaccess  一共就要訪問4個額外的文件,就算這些文件都不存在,這也是本文開始說會影響服務器的一點性能的原因。
其次是安全。這樣會允許用戶自己修改服務器的配置,這可能會導致某些意想不到的修改,所以請認真考慮是否應當給予用戶這樣的特權。

相關文章

在線客服

外鏈咨詢

掃碼加我微信

微信:juxia_com

返回頂部

肉动漫无码纯肉高H免费,又黄又爽的视频合集,av日韩动漫精品一区二区,欧美性强迫XXXX