.htaccess重写规则在URL中间添加一个字符串

时间:2010-06-10 00:03:53

标签: apache drupal .htaccess mod-rewrite url-rewriting

使用.htaccess重写规则,我需要在任何包含单词“imagecache”的URL上的路径前添加“?q =”

因此,如果网址为:

http://mysite.com/sites/default/files/imagecache/myimage.jpg

...然后它会真的尝试:

http://mysite.com/?q=sites/default/files/imagecache/myimage.jpg

但只有在URL包含“imagecache”时才会发生这种情况。否则,它不会重写。

此外,只有当/sites/default/files/imagecache/myimage.jpg不是现有的图像文件时才会发生这种情况。我相信我可以使用:

RewriteCond %{REQUEST_FILENAME} !-f

...对吧?这只是我无法弄清楚的第一部分。

2 个答案:

答案 0 :(得分:1)

这样的东西?:

RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*imagecache.*)$ /?q=$1 [L,QSA]

答案 1 :(得分:0)

RewriteRule ^mysite.com/(.*)/imagecache/(.*)$ mysite.com/?q=$1/imagecache/$2