Nginx重定向[Rewrite]配置 for wordpress & Discuz

本文详细解析了Nginx和Apache的Rewrite规则的区别与使用方法,包括条件匹配、重定向规则以及常见应用示例。通过对比,展示了Nginx规则的简洁性和灵活性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

首先Apache的Rewite规则差别不是很大,但是Nginx的Rewrite规则比Apache的简单灵活多了
Nginx可以用if进行条件匹配,语法规则类似C
if ($http_user_agent ~ MSIE) {
rewrite ^(.*)$ /msie/$1 break;
}
    Rewrite的Flags
    last - 基本上都用这个Flag。
    break - 中止Rewirte,不在继续匹配
    redirect - 返回临时重定向的HTTP状态302
    permanent - 返回永久重定向的HTTP状态301
    Wordpress的重定向规则:
if (!-e $request_filename) {
rewrite ^/(index|atom|rsd)\.xml$ 
http://feed.shunz.net
last;
rewrite ^([_0-9a-zA-Z-]+)?(/wp-.*) $2 last;
rewrite ^([_0-9a-zA-Z-]+)?(/.*\.php)$ $2 last;
rewrite ^ /index.php last;
}
    以下为Discuz完整的Rewrite for Nginx规则
if (!-f $request_filename) {
rewrite ^/archiver/((fid|tid)-[\w\-]+\.html)$ /archiver/index.php?$1 last;
rewrite ^/forum-([0-9]+)-([0-9]+)\.html$ /forumdisplay.php?fid=$1&page=$2 last;
rewrite ^/thread-([0-9]+)-([0-9]+)-([0-9]+)\.html$ /viewthread.php?tid=$1&extra=page%3D$3&page=$2 last;
rewrite ^/space-(username|uid)-(.+)\.html$ /space.php?$1=$2 last;rewrite ^/tag-(.+)\.html$ /tag.php?name=$1 last;
}
    正则正则表达式匹配注解
~ 为区分大小写匹配
~* 为不区分大小写匹配
!~和!~*分别为区分大小写不匹配及不区分大小写不匹配
2、文件及目录匹配,其中:
-f和!-f用来判断是否存在文件
-d和!-d用来判断是否存在目录
-e和!-e用来判断是否存在文件或目录
-x和!-x用来判断文件是否可执行

转载于:https://www.cnblogs.com/hechunhua/p/3300838.html

nginx重定向配置可以通过使用server块和location块来实现。以下是几种常见的nginx重定向配置方法: 1. 将一个URL重定向到另一个URL: ``` server { listen 80; server_name localhost; location /abc { rewrite ^/abc/a/1.html$ http://localhost/ccc/bbb/2.html permanent; } } ``` 这会将从"http://localhost/abc/a/1.html"请求重定向"http://localhost/ccc/bbb/2.html"。 2. 将请求访问脚本重定向到错误页面: ``` server { listen 80; server_name localhost; location ~* \.sh$ { return 403; } } ``` 这会将以".sh"结尾的请求重定向到403错误页面。 3. 将HTTP重定向到HTTPS: 方法一: ``` server { listen 80; server_name localhost; location / { return 301 https://localhost; } } ``` 这会将所有的HTTP请求重定向到HTTPS的"https://localhost"。 方法二: ``` server { listen 80; server_name localhost; location / { rewrite (.*) https://localhost permanent; } } ``` 这也会将所有的HTTP请求重定向到HTTPS的"https://localhost"。 请根据你的需求选择适合的配置方法,并在nginx配置文件中进行相应的修改。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [Nginx重定向配置](https://blog.youkuaiyun.com/qq_38472635/article/details/106791874)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值