dongzhukuai8177 2018-07-31 20:48
浏览 167

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

I'm having difficulty converting this .htaccess in /thumb directory to nginx to work.

.htaccess file:

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. Any url that end with any extension will return a 404.

http://www.example.com/thumb work
http://www.example.com/thumb/jsdlfjfds work
http://www.example.com/thumb/jsdlfjfds/sfjlkdfjldf work
http://www.example.com/thumb/asldkjfls.png not work
http://www.example.com/thumb/zxcvmfds/asldkjfls.jpg not work

How do I rewrite full url, including all extension to /thumb.php? I always thought this regex mean full url with extension ^(.*)$?

thumb.php

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

1条回答 默认 最新

  • duan0821 2018-08-02 11:33
    关注

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

报告相同问题?

悬赏问题

  • ¥15 神经网络怎么把隐含层变量融合到损失函数中?
  • ¥30 自适应 LMS 算法实现 FIR 最佳维纳滤波器matlab方案
  • ¥15 lingo18勾选global solver求解使用的算法
  • ¥15 全部备份安卓app数据包括密码,可以复制到另一手机上运行
  • ¥15 Python3.5 相关代码写作
  • ¥20 测距传感器数据手册i2c
  • ¥15 RPA正常跑,cmd输入cookies跑不出来
  • ¥15 求帮我调试一下freefem代码
  • ¥15 matlab代码解决,怎么运行
  • ¥15 R语言Rstudio突然无法启动