Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/.htaccess/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Apache 无法基于mod_别名目录中存在的文件进行mod_重写?_Apache_.htaccess_Mod Rewrite_Mod Alias - Fatal编程技术网

Apache 无法基于mod_别名目录中存在的文件进行mod_重写?

Apache 无法基于mod_别名目录中存在的文件进行mod_重写?,apache,.htaccess,mod-rewrite,mod-alias,Apache,.htaccess,Mod Rewrite,Mod Alias,我正在尝试在.htaccess文件中执行以下操作: Alias /assets /location/of/files RewriteCond %{REQUEST_URI} ^/assets/[0-9]+.jpg$ RewriteCond %{REQUEST_FILENAME} !-f RewriteRule .* /build_thumbnail.cfm?path=%{REQUEST_URI} [QSA,L] 因此,从理论上讲,这非常简单: 从以/assets开头的url请求图像/ apa

我正在尝试在.htaccess文件中执行以下操作:

Alias /assets /location/of/files

RewriteCond %{REQUEST_URI} ^/assets/[0-9]+.jpg$
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule .* /build_thumbnail.cfm?path=%{REQUEST_URI} [QSA,L]
因此,从理论上讲,这非常简单:

  • 从以/assets开头的url请求图像/
  • apache检查文件是否存在
  • 如果找到,则提供该文件
  • 如果不是,则改为运行脚本
这在其他地方运行良好,但这是我第一次尝试在作为别名包含的目录上使用它。据我所知,Mod Rewrite在Mod Alias之前运行,这肯定会导致它无法工作(事实上,我的别名行在apache conf中,而其余的在.htaccess中)

有没有办法让Mod Rewrite确认别名目录

是否可以将别名行改为重写行?

尝试调用子请求:

RewriteCond %{REQUEST_URI} ^/assets/[0-9]+.jpg$
RewriteCond %{REQUEST_FILENAME} !-F
RewriteRule .* /build_thumbnail.cfm?path=%{REQUEST_URI} [QSA,L]

有趣的想法,我不知道你能做到。不幸的是,仍然没有为我工作这仅仅是404s(好像apache conf中资产的别名映射意味着它甚至不在这里)RewriteCond%{REQUEST_URI}^/assets/[0-9]+.jpg$RewriteRule.*/build_thumbnail.cfm[QSA,L]#这是有效的,因为img是web根RewriteCond%{REQUEST_URI}^/img/[0-9]中的一个真实目录+.jpg$RewriteRule.*/build_thumbnail.cfm[QSA,L]在我的例子中,我设法通过从apache配置中删除Alias指令并将软链接放入文件系统来解决这个问题。如果你在windows上,可能没有多大用处。