我以这种方式将上传的文件存储在/storage/
-
public-adam-luki-uploads-123783.jpg
-
park-hanna-adel-propic-uploads-787689.jpg
"-"计数未知,因为它切片了图片描述
我希望我的用户能够作为访问它
-
http://site.com/public/adam/luki/uploads/123783.jpg
-
http://site.com/park/hanna/adel/propic/uploads/787689.jpg
我认为也有同样的问题
变量数量未知的mod_rewrite
但我做不到,因为我是mod_rewrite模块的新手
我希望你们能用正确的重写器
您链接到的问题实际上并没有做您想要做的事情(尽管原理相同),他们所做的是将url转换为GET
变量。
如果您只想将/
转换为-
,那么您可以使用一个循环运行的简单重写规则:
ReWriteRule ^(.*)/(.*)$ $1-$2 [L]
当然有一些注意事项。。。
首先,即使你试图访问一个真实的目录/文件,规则仍然会切换出/
和-
,并留下404。你可以通过添加条件来解决这个问题;阻止它重写真实文件:
RewriteCond %{REQUEST_FILENAME} !-f
但是,最好将匹配限制为仅图像(jpg
s):
RewriteCond %{REQUEST_FILENAME} !-f
ReWriteRule ^(.*)/(.*).jpg$ $1-$2.jpg [L]
首选解决方案
ReWriteCond %{REQUEST_FILENAME} !-f
ReWriteRule ^images/(.*)/(.*)uploads[-/](d+).jpg$ images/$1-$2uploads-$3.jpg [L]
RewriteCond %{REQUEST_FILENAME} !-f
ReWriteRule ^images/(.*)$ storage/$1 [L]
此解决方案要求您使用以下URL:
http://site.com/images/park/hanna/adel/propic/uploads/787689.jpg
伪目录images
意味着您可以确保url实际上是您想要重定向的url,并且它不会破坏您网站上的其他图像/链接。
上面的规则采用一个url(就像上面的例子一样)并像这样转换它:
images/park/hanna/adel/propic/uploads/787689.jpg <--- Original
images/park-hanna/adel/propic/uploads-787689.jpg
images/park-hanna-adel/propic/uploads-787689.jpg
images/park-hanna-adel-propic/uploads-787689.jpg
images/park-hanna-adel-propic-uploads-787689.jpg
storage/park-hanna-adel-propic-uploads-787689.jpg <--- Final