1

この質問がstackoverflowで数回尋ねられた/回答されたのを見たことがありますが、解決策を見つけることができません。これは、mod の書き換えがどのように機能するかを誤解しているケースだと確信しています。

私は書き直そうとしています:

node/45/done/sid/ から node/45/done?sid=

私は Drupal を使用しているため、私が見た他のソリューションと干渉している可能性のある mod の書き換えエントリ (以下を参照) が既にいくつかあります。上記の解決策について、これをどこに置くべきですか?

<IfModule mod_rewrite.c>
  RewriteEngine on

  RewriteRule "(^|/)\." - [F]

  RewriteCond %{REQUEST_FILENAME} !-f
  RewriteCond %{REQUEST_FILENAME} !-d
  RewriteCond %{REQUEST_URI} !=/favicon.ico
  RewriteRule ^ index.php [L]

  <IfModule mod_headers.c>
    RewriteCond %{HTTP:Accept-encoding} gzip
    RewriteCond %{REQUEST_FILENAME}\.gz -s
    RewriteRule ^(.*)\.css $1\.css\.gz [QSA]

    RewriteCond %{HTTP:Accept-encoding} gzip
    RewriteCond %{REQUEST_FILENAME}\.gz -s
    RewriteRule ^(.*)\.js $1\.js\.gz [QSA]

    RewriteRule \.css\.gz$ - [T=text/css,E=no-gzip:1]
    RewriteRule \.js\.gz$ - [T=text/javascript,E=no-gzip:1]

    <FilesMatch "(\.js\.gz|\.css\.gz)$">
      Header set Content-Encoding gzip
      Header append Vary Accept-Encoding
    </FilesMatch>
  </IfModule>
</IfModule>
4

1 に答える 1

0

通常の "RewriteRule ^ index.php [L]" ルールには [L] フラグがあるため、そのルール以降は実行されません。そのため、その前にルールを追加する必要があります。「RewriteRule "(^|/)." - [F]」行は安全上の注意事項なので、その直後にルールを追加します。[L] フラグをルールに追加しないと、デフォルトのルールに落ちると思います。

于 2012-10-28T20:25:18.053 に答える