Apache .htaccess 無法在新的 VPS 上執行

Apache .htaccess 無法在新的 VPS 上執行

我們將託管從普通伺服器更改為 VPS 伺服器。在此 VPS 伺服器中,操作正常,但.htaccessVPS 未執行或讀取檔案。

即使是簡單的任務,例如重定向 301,例如程式碼:( Redirect 301 /url.html domain.com/urlnova.html)。

但是當我們在本地 apache 伺服器(XAMPP)上測試它時,它工作正常,並且在以前的託管上也是如此。

我們從頭開始創建該文件,但它仍然不起作用。我們與 VPS 託管支援人員(本例中為 Hostinger)進行了交談,但他們無法提供協助。

有什麼辦法可以啟用嗎.htaccess

答案1

.htaccessApache httpd 中的使用由此選項控制AllowOverride。儘管大多數共享託管提供者.htaccess為客戶啟用所有功能,但實際上預設禁用在具有庫存配置的 Apache httpd 中。

其他 Web 伺服器(例如 Nginx).htaccess根本不支援。

答案2

首先,要找出 Apache 是否確實是在您的新 VPS 上執行的 Web 伺服器。眾所周知,Nginx 運行在伺服器上,因為許多託管提供者認為 Apache 和 Nginx 是類似的 Web 伺服器,但實際上它們並非如此。特別是對於.htaccess100% 僅限 Apache 的文件。

作為user1686 在他們的回答中指出,您的託管提供者需要設定AllowOverrideAll才能.htaccess工作。是的,預設的 Apache 安裝AllowOverride並沒有設定為,All儘管事實上幾乎 99% 的 Apache Web 伺服器和 Web 網站都需要.htaccess設定才能運作。例如,Wordpress 和 Drupal(兩種最受歡迎的 CMS 系統)在沒有設定和運作的情況下根本無法運作.htaccess

例如,這是一個可以在預設檔案底部設定的指令,/etc/httpd/conf/httpd.conf以允許.htaccess/var/www/html.

<Directory "/var/www/html">
    Options FollowSymLinks
    AllowOverride All
</Directory>

也可以在本機 Apache 設定檔中的路徑中進行設置,如下所示:

/etc/httpd/conf.d/zzzz_local.conf

我曾經在底部添加類似的內容/etc/httpd/conf/httpd.conf,但現在個人發現在加載的配置文件中設置它更乾淨主要httpd.conf加載在/etc/httpd/conf.d/.

但總的來說,AllowOverride All需要設定才能正常.htaccess運作。

相關內容