2016-08-06 21 views
0

このページ(https://httpd.apache.org/docs/current/en/mod/mod_rewrite.html)を読んだ後、私はRedirectBase指令を使用するべき状況を非常に混乱させます。この点については、例えばいつredhatBaseをapache2.confで使うべきですか?

、(例えばエイリアスとして、他の手段によって到達可能とは対照的に)

元の要求、及び置換は、DocumentRootの下にあります。

私は、Webサーバーのフォルダに/ ABC/DEFのようなフォルダを持っている場合、それはどういう意味、と私は直接「Directory /abc/def」ブロック全体書き換えモジュールを使用しています、私はRedirectBaseを使用する必要はありません指令?また

、私は <Directory /abc/def/> RedirectEngine on RedirectCond %{REQUEST_URI} !^cons.html$ RedirectRule (.*) conf.html </Directory /abc/def/> 私はRedirectBaseディレクティブを使用する必要があります次のコードブロックでのように、ページcons.htmlcons.htmlを除くすべてのURLをリライトしようとしていますか?

ありがとう

+0

それぞれ、いいえとはいです。サーバールートから書き直したURLを置く場合は、 'RewriteBase'は必要ありません。 – hjpotter92

+0

それはまた、 'RewriteCond'のURLを書き換えますか?与えられたブロックのように、 'cons.html'の前に'/abc/def/'を追加するのに役立ちますか? 'RedirectCond%{REQUEST_URI}!^ cons.html $'を使用して、 '/ abc/def/cons.html'以外のページをそのページにリダイレクトすることは有効ですか? –

+0

これはなぜ機能しないのですか? '<ディレクトリ/ var/www/htmlと設定> のRewriteRule ^/S /([0-9] +)で オプション-Indexes RewriteEngine $ /serviceQuick.php?svhid=$1 ' –

答えて

0

マニュアルはかなりクリアです。

このディレクティブは、以下の条件のいずれかに該当する場合を除き、あなたは、ディレクトリごとの(htaccessファイル)のコンテキストで代わりに相対パスを使用する際に必要とされています

  • 元の要求、および置換、下にあります DocumentRoot(別名などの他の手段で到達可能ではない)。
  • RewriteRuleを含むディレクトリへのファイルシステムパスは、 のように接尾辞が付いています。 (これはまれです)のURLパスとしても有効です。
  • Apache HTTP Server 2.4.16以降では、要求が別名またはmod_userdirを使用してマップされている場合、このディレクティブを省略することができます。
関連する問題