我有一个工作RewriteCond喜欢:
RequestURL: http ://www.myserver.com/images/gallery/summer/2013/2013-07-07/thumbs/001.jpg
RewriteCond %{REQUEST_URI} !images/gallery/summer/2013/* RewriteRule ^images/gallery/summer/(.*)$ http://xyz.s3.amazonaws.com/$1 [P]
这工作正常,图像是从亚马逊S3拉。
但是,为什么在RewriteCond中,RegEx不起作用:
RewriteCond %{REQUEST_URI} !^images/gallery/summer/2013/(.*)$
这只是我想明白为什么上面的代码的作品,其他不?
谢谢
REQUEST_URI以/开始,而不是这个:
RewriteCond %{REQUEST_URI} !^images/gallery/summer/2013/(.*)$
尝试这个:
RewriteCond %{REQUEST_URI} !^/images/gallery/summer/2013/(.*)$
迈克的回答是正确的。 考虑打开RewriteLog来观察mod_rewrite实际上在做什么。 这会让你更好地了解你的规则应该是什么样的。
另外,把(。*)$放在RewriteCond的末尾是不必要的,效率很低,除非你真的打算在后面的RewriteRule中使用%1的值。