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>
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;
}
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.