1.)Apache 规则:
RewriteRule ^(.*)/(.*).htm$ /inner.php?Categories=$0&Title=$1 [L,QSA]
2.)转换为nginx后:
rewrite ^/(.*)/(.*).htm$ /inner.php?Categories=$0&Title=$1 break;
问题:当用户访问此页面时http://example.com/category.htm并尝试点击页面内部意味着它应该重定向到 http://example.com/category/innerpagetitle.htm/
在nginx中如何实现?
答案1
在 nginx 中变量从开始返回,$1
因此这应该可以工作:
rewrite ^/(.*)/(.*).htm$ /inner.php?Categories=$1&Title=$2 break;
答案2
我更喜欢使用块来实现这些location
。
location ~ ^/(.+)/(.+)\.htm$ {
try_files $uri $uri/ /inner.php?Categories=$1&Title=$2;
}
.*
我还将(0 个匹配或更多)更改为.+
(1 个匹配或更多),以避免 PHP 脚本可能出现未定义的行为。