带有可选参数的nginx和htaccess重写规则

问题描述 投票:1回答:1

我正在尝试在NGINX.htaccess中重写规则。现在,我有一个链接http://project2.local/recordings可以像这样访问,但它有一个optional参数camera。所以你也可以像这样访问链接:http://project2.local/recordings/camera/1,现在它还有另一种选择。如果你去http://project2.local/recordings/20180118-110222(其中20180118-110222是一个查询字符串),你需要“链接”到另一个.php文件,所以我可以在分离的文件中运行php脚本。但我不清楚我应该怎么做...我目前有这个用于nginx:

 location /camera {
         rewrite ^/camera/([^/]*)$ /camera.php?camera_id=$1 last;
 }

RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /camera\.php\?camera_id=([^\&\s]+)
RewriteRule ^/?camera\.php$ /camera/%1? [L,R=301]
RewriteRule ^camera/([^/]*)$ /camera.php?camera_id=$1 [L]

现在这是另一个页面,但我怎么能为页面recordings做这个?

它需要有或no parameter,或one parameter(并留在当前文件)或/camera/parameter,它链接到另一个.php文件

php apache .htaccess mod-rewrite nginx
1个回答
0
投票

您可以将这些规则用于不同的模式:

RewriteRule ^recordings/?$ recordings.php [L,NC]

RewriteRule ^recordings/camera/(\d+)?$ recordings.php?camera_id=$1 [L,NC,QSA]

RewriteRule ^recordings/(\d+-\d+))?$ another.php?param=$1 [L,NC,QSA]
© www.soinside.com 2019 - 2024. All rights reserved.