要将URL从`http://yuyingzhijia.cn/front/yuyingshi/detail.do?newsID=134737`格式重写为`http://yuyingzhijia.cn/article/134737`,并且考虑到`/yuyingshi/`是动态路径,你可以使用Nginx的`rewrite`指令结合正则表达式来实现。
以下是一个示例的Nginx配置,展示了如何完成这个URL重写:
```nginx
server {
listen 80;
server_name yuyingzhijia.cn;
# 其他配置 ...
# 重写规则
location /front/ {
# 使用正则表达式匹配并捕获动态路径和newsID
rewrite ^/front/([^/]+)/detail\.do\?newsID=(\d+)$ /article/$2 last;
}
# 处理重写后的URL
location /article/ {
# 这里配置如何处理/article/路径的请求,例如代理到后端服务器等
# proxy_pass http://backend_server; # 示例:代理到后端服务器
# 其他配置 ...
}
}
```
在这个配置中:
1. `server`块监听80端口,并指定服务器名为`yuyingzhijia.cn`。
2. 在`location /front/`块中,我们使用`rewrite`指令和正则表达式来匹配URL。正则表达式`^/front/([^/]+)/detail\.do\?newsID=(\d+)$`的含义是:
* `^/front/`:匹配以`/front/`开头的URL。
* `([^/]+)`:匹配除`/`之外的任意字符序列,并捕获到第一个括号中,这里对应动态路径`/yuyingshi/`。
* `/detail\.do\?newsID=`:匹配字面字符串`/detail.do?newsID=`。
* `(\d+)`:匹配一个或多个数字,并捕获到第二个括号中,这里对应`newsID`的值。
* `$`:表示URL的结尾。
3. 重写后的URL为`/article/$2`,其中`$2`引用的是正则表达式中第二个括号捕获的内容,即`newsID`的值。
4. `last`标志表示重写后重新搜索匹配的`location`块。
5. 在`location /article/`块中,你可以配置如何处理重写后的URL。例如,你可以使用`proxy_pass`指令将请求代理到后端服务器,或者进行其他处理。
请注意,这只是一个示例配置,你可能需要根据你的具体需求进行调整。另外,确保在修改Nginx配置后重新加载或重启Nginx服务以使更改生效。