web-dev-qa-db-ja.com

301をサーバー上のフォルダーにリダイレクトしますか?

/etc/Apache2/sites-availableにあるconfファイルをサーバー自体の別のフォルダーに301リダイレクトしたいと思います。しかし、私が追加したとき:

Redirect 301 / /var/www/web/public_html

confファイルに追加し、Apache2を再起動すると、URLが次のように表示されます。

http://www.example/var/www/web/public_html/var/www/web/public_html...

URLではなくフォルダに301リダイレクトするにはどうすればよいですか?

1
KingsInnerSoul

ファイルシステムとURLにはある程度の重複がありますが、その重複はWebスペース内にのみ存在します。 /var/www/web/public_htmlはWebスペース内にありません。この仕様は使用できません。 public_htmlディレクトリ内にあるもののみを参照できます。

コメント内で説明した内容を考慮して、public_htmlディレクトリ内の.htaccessファイルで以下のコードを使用します。 .で始まるファイル、特に.htで始まるファイルはすべて非表示になることに注意してください。サーバーへのシェルアクセス(SSH)が必要です。

> cd /var/www/web/public_html
> vi .htaccess

もちろん、これにはコントロールパネルを使用できますが、それをどのように進めるかはわかりません。

以下を.htaccessファイルに貼り付けて保存します。

RewriteCond %{REQUEST_URI} !^/index.html$ [NC]
RewriteRule .* /index.html [R,L]

これが正しいと仮定すると、最初の行はリクエストを除外しますnot for /index.htmlそして2行目はそれらのリクエストを受け取り、/ index.htmlにリダイレクトします。つまり、/ index.htmlでない場合は[show] /index.htmlです。

隠しファイルを含むディレクトリ内のファイルのリストを表示する場合は、次を使用できます。

> ls -al

コントロールパネルには、ファイルマネージャー内の隠しファイルを表示するオプションがあります。

もちろん、これはウェブサイトを把握するまでの一時的なものです。その方法を教えてください。

1
closetnoc