带有可选参数的nginx和htaccess重写规则
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了带有可选参数的nginx和htaccess重写规则相关的知识,希望对你有一定的参考价值。
我正在尝试在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文件
答案
您可以将这些规则用于不同的模式:
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]
以上是关于带有可选参数的nginx和htaccess重写规则的主要内容,如果未能解决你的问题,请参考以下文章