2017-11-07 12 views
0
# Redirect all users to access the site WITH the 'www.' prefix 
RewriteCond %{HTTP_HOST} !^www\. [NC] 
**RewriteCond %{HTTP_HOST} !\.([a-z-]+\.[a-z]{2,6})$ [NC]** 
RewriteRule^http://www.%{HTTP_HOST}%{REQUEST_URI} [L,R=301] 

、上記のコードでは、私は1行目は、「URLがWWWを持っていない場合。」と言うと思いますので、 3行目は "wwwを301リダイレクトとしてURLを書き換える"と言いますが、2番目の行はサブドメインを考慮して除外することですが、だれでもこの!\.([a-z-]+\.[a-z]{2,6})$が正確に言うものを教えてもらえますか?解読本の.htaccessライン

もう1つの質問:mod_rewriteが有効になっている場合でも、を.htaccessファイルの先頭に追加する必要がありますか?私がしなければどうなりますか?

2行目の正規表現がマッチし

答えて

1

、文字列の場合:

  • !はありません
  • \. AZの
  • [a-z-]複数の文字、続くリテラルドット、 - 範囲、続いて
  • \.もう1つのリテラルドット、続いて
  • [a-z]{2,6} 2文字から6文字までストリング

括弧「(..)」の終了前-Z範囲

  • $は、マッチした部分文字列の捕捉を可能にします。 これは、発現/置換の後に用いることができる。

    フラグNCは大文字と小文字を区別しない一致を実行します。入ってくるURLが

    • www.(1行目)
    • .hostname.tld(2行目)のように見えますSTHで終わっていないと起動しない場合は、この書き換えをトリガーする、あなたのケースで

    正規表現を試してみるには、遊び場としてはhttps://regex101.com/を参照してください。

  • 関連する問題