2017-02-05 6 views
2

私はこの例を持っていますが、この場合は正常に動作しますが、ドメイン名に基づいて動的にサブフォルダにリダイレクトしたいと考えています。 example.comを現在のドメインに置き換えるにはどうすればよいですか?私はこのような何かを試してみたhtaccessで動的変数を使用するにはどうしたらいいですか?

<IfModule mod_rewrite.c> 
RewriteEngine On 
RewriteCond %{HTTP_HOST} ^(?:www\.)?(.+)$ [NC] 
RewriteRule !^example.com/ /example.com%{REQUEST_URI} [L,NC] 
</IfModule> 

<IfModule mod_rewrite.c> 
RewriteEngine On 
RewriteCond %{HTTP_HOST} ^(?:www\.)?(.+)$ [NC] 
RewriteRule !^$1/ /$1%{REQUEST_URI} [L,NC] 
</IfModule> 

(ただし、内部エラーを取得)は、それが最後のRewriteCondからであるため、後方参照は、%1だろうあなたに

答えて

0

ありがとうございます。これらの後方参照のみ置換に認識されますので、しかし、あなたは(、置換文字列が

  1. 後方参照を含めることができ、プレーンテキストに加えてRewriteRule

    を参照してください、それを使用することはできませんRewriteRuleパターンへの$ N)最後にマッチしたのRewriteCondパターン

から
  • 後方参照(%のN)

    • のRewriteCondの後方参照

      又はRewriteCondテストストリング内

      たTestStringプレーンテキストに加えて、以下の拡張構造を含むことができる文字列であり、これらの形式の後方参照であります%N(0 < = N < = 9)。 %1から%9は、パターンのグループ化された部分(カッコ内)に、現在の一連の条件で最後に一致したRewriteCondからのアクセスを提供します。 %0は、そのパターンにマッチした文字列全体へのアクセスを提供します。


    だから、結論として、あなたがルールパターンのいずれかでそれを使用することができる方法は、例えば、存在しません

    RewriteRule pattern substitution 
    

    または条件パターン

    RewriteCond teststring condpattern 
    
  • 1

    次を使用することができます。

    RewriteEngine on 
    
    RewriteCond %{ENV_REDIRECT_STATUS} 200 
    RewriteRule^- [L] 
    RewriteCond %{HTTP_HOST} ^(?:www\.)?(.+)$ 
    RewriteRule^/%1%{REQUEST_URI} [L] 
    

    それが2回目の反復で書き換え処理を終了し、ループのエラーを防ぐように第1のルールは重要です。

    関連する問題