简体   繁体   English

将目录位置重写为php文件nginx

[英]Rewrite directory location to a php file nginx

I'm having difficulty converting this .htaccess in /thumb directory to nginx to work. 我在将/ thumb目录中的.htaccess转换为nginx时遇到困难。

.htaccess file: .htaccess文件:

Options +FollowSymLinks
<IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteRule .* ../thumb.php [L,QSA]
</IfModule>

What I tried: 我试过的

location /thumb {
    rewrite ^(.*)$ /thumb.php;
}

location /thumb {
    index thumb.php;
    rewrite ^/thumb/(.*)$ /thumb.php;
}

These won't work. 这些行不通。

edited: I think I found the problem but I'm still puzzle on the solutions. 编辑:我认为我找到了问题,但我仍然对解决方案感到困惑。 I made a small echo php file to test, all result that does not end in extension seem to work. 我做了一个小的echo PHP文件进行测试,所有未以扩展名结尾的结果似乎都能正常工作。 Any url that end with any extension will return a 404. 任何以任何扩展名结尾的网址都将返回404。

http://www.example.com/thumb work http://www.example.com/thumb工作
http://www.example.com/thumb/jsdlfjfds work http://www.example.com/thumb/jsdlfjfds工作
http://www.example.com/thumb/jsdlfjfds/sfjlkdfjldf work http://www.example.com/thumb/jsdlfjfds/sfjlkdfjldf工作
http://www.example.com/thumb/asldkjfls.png not work http://www.example.com/thumb/asldkjfls.png不起作用
http://www.example.com/thumb/zxcvmfds/asldkjfls.jpg not work http://www.example.com/thumb/zxcvmfds/asldkjfls.jpg不起作用

How do I rewrite full url, including all extension to /thumb.php? 如何重写完整的url,包括/thumb.php的所有扩展名? I always thought this regex mean full url with extension ^(.*)$? 我一直以为这个正则表达式的意思是带有扩展名^(。*)$的完整URL?

thumb.php thumb.php

<html>
 <head>
  <title>PHP Test</title>
 </head>
 <body>
 <?php echo '<p>Hello World</p>'; ?>
 </body>
</html>

There was another location that match the file extensions and it seem the two can't co-exist. 还有另一个与文件扩展名匹配的位置,看来这两个文件不能并存。 They need to be put in a nested location. 它们需要放置在嵌套位置。

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;
}

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM