Nginx可以使用URL重写来实现伪静态,以改善网站的URL结构和用户友好性。伪静态是将动态URL转换为静态URL的过程,通常以更友好和可读的方式展示在浏览器地址栏中。以下是一个简单的示例,演示如何在Nginx中进行URL重写来实现伪静态。
假设你有一个动态URL如下:
http://example.com/page.php?id=123
你想将其重写为伪静态URL:
http://example.com/page/123
以下是Nginx配置示例:
server {
listen 80;
server_name example.com;
location / {
try_files $uri $uri/ /index.php?$query_string;
}
location ~ /page/(\d+)$ {
rewrite ^/page/(\d+)$ /page.php?id=$1 last;
}
location ~ .php$ {
include fastcgi_params;
fastcgi_pass unix:/var/run/php-fpm/php-fpm.sock; # 根据你的PHP配置更改
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
}
# 其他配置...
}
在上述配置中,我们做了以下操作:
- 使用
location /
块来处理正常的页面请求,并将未找到的文件传递给index.php
进行处理。 - 使用
location ~ /page/(\d+)$
块来匹配伪静态URL模式,例如/page/123
。然后,我们使用rewrite
指令将其重写为/page.php?id=123
,其中$1
是正则表达式捕获的匹配项。 - 使用
location ~ .php$
块来处理PHP脚本请求,将其传递给PHP-FPM进行处理。
请根据你的具体需求和网站结构进行适当的配置更改。这只是一个示例,可以根据你的项目需求进行定制。