新しい VPS で Apache .htaccess が動作しない

新しい VPS で Apache .htaccess が動作しない

ホスティングを通常のサーバーから VPS サーバーに変更しました。この VPS サーバーでは操作は正常ですが、ファイルは.htaccessVPS によって実行または読み取られません。

たとえ、コード例: ( Redirect 301 /url.html domain.com/urlnova.html) のように 301 リダイレクトなどの単純なタスクであっても。

しかし、ローカルの Apache サーバー (XAMPP) でテストしたところ、正常に動作し、以前のホスティングでも同様に動作しました。

ファイルを最初から作成しましたが、まだ機能しません。VPS ホスティング サポート (この場合は Hostinger) に問い合わせましたが、サポートしてもらえませんでした。

有効にする方法はありますか.htaccess?

答え1

.htaccessApache httpdでの使用はオプションによって制御されますAllowOverride。ほとんどの共有ホスティングプロバイダーは.htaccess顧客にすべての機能を有効にしていますが、実際にはデフォルトでは無効標準設定の Apache httpd で。

Nginx などの他の Web サーバーは.htaccessまったくサポートされていません。

答え2

まず最初に、新しい VPS で実行されている Web サーバーが本当に Apache であるかどうかを確認します。多くのホスティング プロバイダーは Apache と Nginx を同様の Web サーバーと見なしていますが、実際にはそうではありません。特に、.htaccess100% Apache のみのアイテムであるファイルの場合、Nginx がサーバー上で実行されている可能性があります。

としてuser1686は回答の中で次のように述べています。、ホスティング プロバイダーがAllowOverrideを に設定して動作させる必要があります。そして、確かに、Apache ウェブ サーバーとウェブサイトの 99% が動作するAllようにを設定する必要があるにもかかわらず、Apache インストールでは はに設定されていません。たとえば、Wordpress と Drupal (現在最も人気のある 2 つの CMS システム) は、 を設定して実行しないとまったく動作しません。.htaccessAllowOverrideAll.htaccess.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

関連情報