我在将/ thumb目录中的.htaccess转换为nginx时遇到困难。
.htaccess文件:
Function<Unit>
我尝试过的事情:
Options +FollowSymLinks
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteRule .* ../thumb.php [L,QSA]
</IfModule>
这些无效。
编辑:我想我找到了问题,但是我仍然对解决方案感到困惑。 我做了一个小的echo PHP文件进行测试,所有未以扩展名结尾的结果似乎都能正常工作。任何以任何扩展名结尾的网址都将返回404。
http://www.example.com/thumb工作
http://www.example.com/thumb/jsdlfjfds工作
http://www.example.com/thumb/jsdlfjfds/sfjlkdfjldf工作
http://www.example.com/thumb/asldkjfls.png不起作用
http://www.example.com/thumb/zxcvmfds/asldkjfls.jpg不起作用
如何重写完整的URL,包括/thumb.php的所有扩展名?我一直以为这个正则表达式的意思是带有扩展名^(。*)$的完整URL?
thumb.php
location /thumb {
rewrite ^(.*)$ /thumb.php;
}
location /thumb {
index thumb.php;
rewrite ^/thumb/(.*)$ /thumb.php;
}
答案 0 :(得分:0)
还有一个与文件扩展名匹配的位置,看来这两个文件不能并存。它们需要放在嵌套的位置。
location /thumb {
location ~* ^.+\.(jpg|jpeg|gif|png|bmp|webp|svg|ai|eps)$ {
access_log off;
log_not_found off;
expires max;
rewrite ^(.*)$ /thumb.php;
}
rewrite ^(.*)$ /thumb.php;
}