代码之家  ›  专栏  ›  技术社区  ›  Mike Crittenden

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

  •  1
  • Mike Crittenden  · 技术社区  · 16 年前

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

    因此,如果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
    

    ……对吗?这只是第一部分,我想不出来。

    2 回复  |  直到 16 年前
        1
  •  1
  •   Chris    16 年前

    像这样?:

    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule ^(.*imagecache.*)$ /?q=$1 [L,QSA]
    
        2
  •  0
  •   Elle H    16 年前
    RewriteRule ^mysite.com/(.*)/imagecache/(.*)$ mysite.com/?q=$1/imagecache/$2