1

私はこのようなURLを避けようとしています:

画像/

また

images / valid-filename.png

また

images /invalid-filename.png

書き直されることから

ルートディレクトリの.htaccessmod_rewriteのような他の質問例を確認しましたが、他のすべてのディレクトリと.htaccessmod_rewriteの免除とこれをスキップする必要がありますhttps://stackoverflow.com/questions/7209746/can-mod-rewrite-skip -フォルダですが、私が求めているものを達成するためのルールを取得することができませんでした。

これが私が今持っているものです:

# Enable URL Rewriting
Options -Indexes
<IfModule mod_rewrite.c>
  RewriteEngine on
  RewriteRule ^(scripts|styles|images)(/.*|$) - [L]

  RewriteCond %{REQUEST_FILENAME} !-f
  RewriteCond %{REQUEST_FILENAME} !-d
  RewriteCond %{REQUEST_URI} !=/robots.txt
  RewriteCond %{REQUEST_URI} !=/favicon.ico
  # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  # This solved the problem
  # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  RewriteCond %{REQUEST_URI} !images/.* [NC]
  RewriteRule ^(.*)$ index.php [L,QSA]
</IfModule>

www.site.com/images/に移動すると、www.site.comにリダイレクトされます。

www.site.com/images/invalid-filename.pngに移動すると、www.site.comにリダイレクトされます。

ただし、www.site.com / images/valid-filename.pngは正しく読み込まれます。

誰かが上記の書き換え動作を実現する方法を説明するのを手伝ってもらえますか?

どうもありがとう

4

1 に答える 1

2

このRewriteCondを追加してみてください:RewriteCond %{REQUEST_URI} !images/.* [NC]
URIがで始まるかどうかをチェックし、始まるimages/場合はルールが満たされません。

于 2012-06-23T10:48:26.780 に答える