
ホスティングを通常のサーバーから VPS サーバーに変更しました。この VPS サーバーでは操作は正常ですが、ファイルは.htaccess
VPS によって実行または読み取られません。
たとえ、コード例: ( Redirect 301 /url.html domain.com/urlnova.html
) のように 301 リダイレクトなどの単純なタスクであっても。
しかし、ローカルの Apache サーバー (XAMPP) でテストしたところ、正常に動作し、以前のホスティングでも同様に動作しました。
ファイルを最初から作成しましたが、まだ機能しません。VPS ホスティング サポート (この場合は Hostinger) に問い合わせましたが、サポートしてもらえませんでした。
有効にする方法はありますか.htaccess
?
答え1
.htaccess
Apache httpdでの使用はオプションによって制御されますAllowOverride
。ほとんどの共有ホスティングプロバイダーは.htaccess
顧客にすべての機能を有効にしていますが、実際にはデフォルトでは無効標準設定の Apache httpd で。
Nginx などの他の Web サーバーは.htaccess
まったくサポートされていません。
答え2
まず最初に、新しい VPS で実行されている Web サーバーが本当に Apache であるかどうかを確認します。多くのホスティング プロバイダーは Apache と Nginx を同様の Web サーバーと見なしていますが、実際にはそうではありません。特に、.htaccess
100% Apache のみのアイテムであるファイルの場合、Nginx がサーバー上で実行されている可能性があります。
としてuser1686は回答の中で次のように述べています。、ホスティング プロバイダーがAllowOverride
を に設定して動作させる必要があります。そして、確かに、Apache ウェブ サーバーとウェブサイトの 99% が動作するAll
ようにを設定する必要があるにもかかわらず、Apache インストールでは はに設定されていません。たとえば、Wordpress と Drupal (現在最も人気のある 2 つの CMS システム) は、 を設定して実行しないとまったく動作しません。.htaccess
AllowOverride
All
.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