伪静态是指通过服务器配置,将动态URL转换为看起来像静态URL的形式,既保持URL的美观性,又不影响动态功能的实现。以下是Nginx配置伪静态的详细方法:
通常位于 /etc/nginx/nginx.conf
或 /etc/nginx/sites-available/your_site.conf
server {
listen 80;
server_name yourdomain.com;
location / {
try_files $uri $uri/ /index.php?$query_string;
}
# 伪静态规则示例
location ~* ^/article/([0-9]+)\.html$ {
rewrite ^/article/([0-9]+)\.html$ /article.php?id=$1 last;
}
}
location / {
try_files $uri $uri/ /index.php?$args;
}
rewrite ^([^\.]*)/topic-(.+)\.html$ $1/portal.php?mod=topic&topic=$2 last;
rewrite ^([^\.]*)/article-([0-9]+)-([0-9]+)\.html$ $1/portal.php?mod=view&aid=$2&page=$3 last;
rewrite ^([^\.]*)/forum-(\w+)-([0-9]+)\.html$ $1/forum.php?mod=forumdisplay&fid=$2&page=$3 last;
if (!-e $request_filename) {
rewrite ^/(.*)$ /index.php/$1 last;
}
if ($request_uri ~* "^(.*/)index\.php$") {
rewrite ^(.*/)index\.php$ $1 permanent;
}
rewrite ^/product/([0-9]+)-([a-z]+)\.html$ /product.php?id=$1&name=$2 last;
location ~* \.(js|css|png|jpg|jpeg|gif|ico)$ {
expires 30d;
access_log off;
}
nginx -t
nginx -s reload
# 或
systemctl reload nginx
last
标记表示停止处理当前重写规则,开始搜索匹配新URI的位置如需针对特定系统或框架的伪静态配置,可以提供更多详细信息,我可以给出更具体的配置方案。