【问题标题】:.htaccess rewrite rule to add a string in the middle of the URL.htaccess 重写规则在 URL 中间添加一个字符串
【发布时间】:2010-06-10 00:03:52
【问题描述】:

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

因此,如果 URL 是:

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

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

【问题讨论】:

  • Drupal 不是已经这样做了吗?我的意思是重写部分。
  • 是的,但我遇到了一个奇怪的问题,即尚未生成图像的 ImageCache URL 返回 404 而不是生成图像...大概是由于服务器上发生了一些缓存问题.所以这是我试图解决这个问题的尝试。
  • 是在Imagecache生成图像之前处理请求的地方吗?

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


【解决方案1】:

像这样?:

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

【讨论】:

    【解决方案2】:
    RewriteRule ^mysite.com/(.*)/imagecache/(.*)$ mysite.com/?q=$1/imagecache/$2
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-12-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-12-06
      • 2016-11-19
      • 1970-01-01
      相关资源
      最近更新 更多