在Discuz!的Apache环境中,伪静态规则(`.htaccess`文件)是一个非常强大的工具,可以帮助你实现多种功能,包括伪静态重定向、防盗链、限制下载、文件保护等。以下是一些高级用法的详细解释和示例:
### 1. 301全站跳转
- RewriteEngine On
- RewriteCond %{HTTP_HOST} ^www\.old\.net$
- RewriteRule ^(.*)$ http://www.new.net/$1 [R=301,L]
复制代码
- **解释**:将`www.old.net`的所有请求重定向到`www.new.net`,并返回301永久重定向状态码。
- **注意**:`[R=301,L]`表示301重定向,并且这是最后一条规则(`L`)。
### 2. 防盗链
- RewriteEngine On
- RewriteCond %{HTTP_REFERER} !^$
- RewriteCond %{HTTP_REFERER} !^http://(www\.)?yourdomain\.com/ [NC]
- RewriteRule \.(jpg|jpeg|png|gif|bmp)$ - [F,NC]
复制代码
- **解释**:阻止其他网站盗链你的图片资源。如果请求的图片文件(如`.jpg`, `.png`等)不是来自`yourdomain.com`,则返回403 Forbidden错误。
- **注意**:`[F,NC]`表示返回403 Forbidden错误,并且忽略大小写(`NC`)。
### 3. 限制下载
- RewriteEngine On
- RewriteCond %{HTTP_REFERER} !^http://(www\.)?yourdomain\.com/ [NC]
- RewriteRule \.(zip|rar|tar\.gz)$ - [F,NC]
复制代码
- **解释**:限制只有来自`yourdomain.com`的请求才能下载`.zip`, `.rar`, `.tar.gz`等文件。
- **注意**:`[F,NC]`表示返回403 Forbidden错误,并且忽略大小写(`NC`)。
### 4. 文件保护
- RewriteEngine On
- RewriteCond %{REQUEST_URI} ^/protected/ [NC]
- RewriteCond %{REMOTE_ADDR} !^192\.168\.1\.100$
- RewriteRule ^(.*)$ - [F,NC]
复制代码
- **解释**:保护`/protected/`目录下的文件,只允许IP地址为`192.168.1.100`的客户端访问。
- **注意**:`[F,NC]`表示返回403 Forbidden错误,并且忽略大小写(`NC`)。
### 5. 伪静态重定向
- RewriteEngine On
- RewriteRule ^article/([0-9]+)/?$ article.php?id=$1 [L,QSA]
复制代码
- **解释**:将`/article/123/`这样的URL重写为`article.php?id=123`,并且保留查询字符串(`QSA`)。
- **注意**:`[L,QSA]`表示这是最后一条规则(`L`),并且追加查询字符串(`QSA`)。
### 6. 去掉`www`
- RewriteEngine On
- RewriteCond %{HTTP_HOST} ^www\.(.*)$ [NC]
- RewriteRule ^(.*)$ http://%1/$1 [R=301,L]
复制代码
- **解释**:将`www.yourdomain.com`重定向到`yourdomain.com`,并返回301永久重定向状态码。
- **注意**:`[R=301,L]`表示301重定向,并且这是最后一条规则(`L`)。
### 7. 加上`www`
- RewriteEngine On
- RewriteCond %{HTTP_HOST} ^yourdomain\.com$ [NC]
- RewriteRule ^(.*)$ http://www.yourdomain.com/$1 [R=301,L]
复制代码
- **解释**:将`yourdomain.com`重定向到`www.yourdomain.com`,并返回301永久重定向状态码。
- **注意**:`[R=301,L]`表示301重定向,并且这是最后一条规则(`L`)。
### 8. 支持多域名访问
- RewriteEngine On
- RewriteCond %{HTTP_HOST} ^domain-one\.com$ [NC]
- RewriteCond %{REQUEST_URI} !^/one/
- RewriteRule ^(.*)$ /one/$1 [L]
- RewriteCond %{HTTP_HOST} ^domain-two\.com$ [NC]
- RewriteCond %{REQUEST_URI} !^/two/
- RewriteRule ^(.*)$ /two/$1 [L]
复制代码
- **解释**:根据访问的域名(`domain-one.com`或`domain-two.com`),将请求重定向到不同的目录(`/one/`或`/two/`)。
- **注意**:`[L]`表示这是最后一条规则。
### 9. 阻止特定User-Agent
- RewriteEngine On
- RewriteCond %{HTTP_USER_AGENT} ^BlackWido [NC,OR]
- RewriteCond %{HTTP_USER_AGENT} ^2\.0\.50727 [NC]
- RewriteRule ^.*$ - [F,L]
复制代码
- **解释**:阻止User-Agent为`BlackWido`或`2.0.50727`(迅雷)的请求,并返回403 Forbidden错误。
- **注意**:`[F,L]`表示返回403 Forbidden错误,并且这是最后一条规则(`L`)。
### 10. 文件访问控制
- RewriteEngine On
- RewriteCond %{REQUEST_FILENAME} !^(.+)\.css$
- RewriteCond %{REQUEST_FILENAME} !^(.+)\.js$
- RewriteCond %{REQUEST_FILENAME} !special\.zip$
- RewriteRule ^(.+)$ /chat/ [L]
复制代码
- **解释**:只允许访问`.css`, `.js`文件和`special.zip`文件,其他请求将被重定向到`/chat/`目录。
- **注意**:`[L]`表示这是最后一条规则。
### 11. 默认首页
- RewriteEngine On
- RewriteCond %{HTTP_HOST} ^(www\.)?yourdomain\.com$ [NC]
- RewriteRule ^(/)?$ blog/index.php [L]
复制代码
- **解释**:如果访问根目录(`/`),则重定向到`blog/index.php`。
- **注意**:`[L]`表示这是最后一条规则。
### 12. 改写查询字符串
- RewriteEngine On
- RewriteCond %{QUERY_STRING} foo=(.*)
- RewriteRule ^grab(.*) /page.php?bar=%1 [L,QSA]
复制代码
- **解释**:将`/grab?foo=bar`重写为`/page.php?bar=bar`,并且保留查询字符串(`QSA`)。
- **注意**:`[L,QSA]`表示这是最后一条规则(`L`),并且追加查询字符串(`QSA`)。
### 13. 剥离查询字符串
- RewriteEngine On
- RewriteCond %{QUERY_STRING} .
- RewriteRule foo.php(.*) /foo.php? [L]
复制代码
- **解释**:将`foo.php?query=string`重写为`foo.php`,剥离查询字符串。
- **注意**:`[L]`表示这是最后一条规则。
### 14. 阻止特定文件类型
- RewriteEngine On
- RewriteRule \.(htaccess|htpasswd|ini|log|sh|inc|bak)$ - [F,NC]
复制代码
- **解释**:阻止访问`.htaccess`, `.htpasswd`, `.ini`, `.log`, `.sh`, `.inc`, `.bak`等敏感文件。
- **注意**:`[F,NC]`表示返回403 Forbidden错误,并且忽略大小写(`NC`)。
### 15. 强制HTTPS
- RewriteEngine On
- RewriteCond %{HTTPS} off
- RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
复制代码
- **解释**:将所有HTTP请求重定向到HTTPS,并返回301永久重定向状态码。
- **注意**:`[L,R=301]`表示这是最后一条规则(`L`),并且返回301重定向(`R=301`)。
### 16. 强制WWW
- RewriteEngine On
- RewriteCond %{HTTP_HOST} !^www\. [NC]
- RewriteRule ^(.*)$ http://www.%{HTTP_HOST}/$1 [L,R=301]
复制代码
- **解释**:将所有非`www`的请求重定向到`www`,并返回301永久重定向状态码。
- **注意**:`[L,R=301]`表示这是最后一条规则(`L`),并且返回301重定向(`R=301`)。
### 17. 强制非WWW
- RewriteEngine On
- RewriteCond %{HTTP_HOST} ^www\.(.*)$ [NC]
- RewriteRule ^(.*)$ http://%1/$1 [L,R=301]
复制代码
- **解释**:将所有`www`的请求重定向到非`www`,并返回301永久重定向状态码。
- **注意**:`[L,R=301]`表示这是最后一条规则(`L`),并且返回301重定向(`R=301`)。
### 18. 阻止特定IP
- RewriteEngine On
- RewriteCond %{REMOTE_ADDR} ^192\.168\.1\.100$
- RewriteRule ^(.*)$ - [F,L]
复制代码
- **解释**:阻止IP地址为`192.168.1.100`的客户端访问,并返回403 Forbidden错误。
- **注意**:`[F,L]`表示返回403 Forbidden错误,并且这是最后一条规则(`L`)。
### 19. 阻止特定目录
- RewriteEngine On
- RewriteCond %{REQUEST_URI} ^/private/ [NC]
- RewriteRule ^(.*)$ - [F,L]
复制代码
- **解释**:阻止访问`/private/`目录下的所有文件,并返回403 Forbidden错误。
- **注意**:`[F,L]`表示返回403 Forbidden错误,并且这是最后一条规则(`L`)。
### 20. 阻止特定文件
- RewriteEngine On
- RewriteCond %{REQUEST_URI} ^/private/file\.txt$ [NC]
- RewriteRule ^(.*)$ - [F,L]
复制代码
- **解释**:阻止访问`/private/file.txt`文件,并返回403 Forbidden错误。
- **注意**:`[F,L]`表示返回403 Forbidden错误,并且这是最后一条规则(`L`)。
### 21. 阻止特定User-Agent
- RewriteEngine On
- RewriteCond %{HTTP_USER_AGENT} ^BlackWido [NC,OR]
- RewriteCond %{HTTP_USER_AGENT} ^2\.0\.50727 [NC]
- RewriteRule ^.*$ - [F,L]
复制代码
- **解释**:阻止User-Agent为`BlackWido`或`2.0.50727`(迅雷)的请求,并返回403 Forbidden错误。
- **注意**:`[F,L]`表示返回403 Forbidden错误,并且这是最后一条规则(`L`)。
### 22. 阻止特定文件类型
- RewriteEngine On
- RewriteRule \.(htaccess|htpasswd|ini|log|sh|inc|bak)$ - [F,NC]
复制代码
- **解释**:阻止访问`.htaccess`, `.htpasswd`, `.ini`, `.log`, `.sh`, `.inc`, `.bak`等敏感文件。
- **注意**:`[F,NC]`表示返回403 Forbidden错误,并且忽略大小写(`NC`)。
### 23. 强制HTTPS
- RewriteEngine On
- RewriteCond %{HTTPS} off
- RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
复制代码
- **解释**:将所有HTTP请求重定向到HTTPS,并返回301永久重定向状态码。
- **注意**:`[L,R=301]`表示这是最后一条规则(`L`),并且返回301重定向(`R=301`)。
### 24. 强制WWW
- RewriteEngine On
- RewriteCond %{HTTP_HOST} !^www\. [NC]
- RewriteRule ^(.*)$ http://www.%{HTTP_HOST}/$1 [L,R=301]
复制代码
- **解释**:将所有非`www`的请求重定向到`www`,并返回301永久重定向状态码。
- **注意**:`[L,R=301]`表示这是最后一条规则(`L`),并且返回301重定向(`R=301`)。
### 25. 强制非WWW
- RewriteEngine On
- RewriteCond %{HTTP_HOST} ^www\.(.*)$ [NC]
- RewriteRule ^(.*)$ http://%1/$1 [L,R=301]
复制代码
- **解释**:将所有`www`的请求重定向到非`www`,并返回301永久重定向状态码。
- **注意**:`[L,R=301]`表示这是最后一条规则(`L`),并且返回301重定向(`R=301`)。
### 26. 阻止特定IP
- RewriteEngine On
- RewriteCond %{REMOTE_ADDR} ^192\.168\.1\.100$
- RewriteRule ^(.*)$ - [F,L]
复制代码
- **解释**:阻止IP地址为`192.168.1.100`的客户端访问,并返回403 Forbidden错误。
- **注意**:`[F,L]`表示返回403 Forbidden错误,并且这是最后一条规则(`L`)。
### 27. 阻止特定目录
- RewriteEngine On
- RewriteCond %{REQUEST_URI} ^/private/ [NC]
- RewriteRule ^(.*)$ - [F,L]
复制代码
- **解释**:阻止访问`/private/`目录下的所有文件,并返回403 Forbidden错误。
- **注意**:`[F,L]`表示返回403 Forbidden错误,并且这是最后一条规则(`L`)。
### 28. 阻止特定文件
- RewriteEngine On
- RewriteCond %{REQUEST_URI} ^/private/file\.txt$ [NC]
- RewriteRule ^(.*)$ - [F,L]
复制代码
- **解释**:阻止访问`/private/file.txt`文件,并返回403 Forbidden错误。
- **注意**:`[F,L]`表示返回403 Forbidden错误,并且这是最后一条规则(`L`)。
### 29. 阻止特定User-Agent
- RewriteEngine On
- RewriteCond %{HTTP_USER_AGENT} ^BlackWido [NC,OR]
- RewriteCond %{HTTP_USER_AGENT} ^2\.0\.50727 [NC]
- RewriteRule ^.*$ - [F,L]
复制代码
- **解释**:阻止User-Agent为`BlackWido`或`2.0.50727`(迅雷)的请求,并返回403 Forbidden错误。
- **注意**:`[F,L]`表示返回403 Forbidden错误,并且这是最后一条规则(`L`)。
### 30. 阻止特定文件类型
- RewriteEngine On
- RewriteRule \.(htaccess|htpasswd|ini|log|sh|inc|bak)$ - [F,NC]
复制代码
- **解释**:阻止访问`.htaccess`, `.htpasswd`, `.ini`, `.log`, `.sh`, `.inc`, `.bak`等敏感文件。
- **注意**:`[F,NC]`表示返回403 Forbidden错误,并且忽略大小写(`NC`)。
### 31. 强制HTTPS
- RewriteEngine On
- RewriteCond %{HTTPS} off
- RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
复制代码
- **解释**:将所有HTTP请求重定向到HTTPS,并返回301永久重定向状态码。
- **注意**:`[L,R=301]`表示这是最后一条规则(`L`),并且返回301重定向(`R=301`)。
### 32. 强制WWW
- RewriteEngine On
- RewriteCond %{HTTP_HOST} !^www\. [NC]
- RewriteRule ^(.*)$ http://www.%{HTTP_HOST}/$1 [L,R=301]
复制代码
- **解释**:将所有非`www`的请求重定向到`www`,并返回301永久重定向状态码。
- **注意**:`[L,R=301]`表示这是最后一条规则(`L`),并且返回301重定向(`R=301`)。
### 33. 强制非WWW
- RewriteEngine On
- RewriteCond %{HTTP_HOST} ^www\.(.*)$ [NC]
- RewriteRule ^(.*)$ http://%1/$1 [L,R=301]
复制代码
- **解释**:将所有`www`的请求重定向到非`www`,并返回301永久重定向状态码。
- **注意**:`[L,R=301]`表示这是最后一条规则(`L`),并且返回301重定向(`R=301`)。
### 34. 阻止特定IP
- RewriteEngine On
- RewriteCond %{REMOTE_ADDR} ^192\.168\.1\.100$
- RewriteRule ^(.*)$ - [F,L]
复制代码
- **解释**:阻止IP地址为`192.168.1.100`的客户端访问,并返回403 Forbidden错误。
- **注意**:`[F,L]`表示返回403 Forbidden错误,并且这是最后一条规则(`L`)。
### 35. 阻止特定目录
- RewriteEngine On
- RewriteCond %{REQUEST_URI} ^/private/ [NC]
- RewriteRule ^(.*)$ - [F,L]
复制代码
- **解释**:阻止访问`/private/`目录下的所有文件,并返回403 Forbidden错误。
- **注意**:`[F,L]`表示返回403 Forbidden错误,并且这是最后一条规则(`L`)。
### 36. 阻止特定文件
- RewriteEngine On
- RewriteCond %{REQUEST_URI} ^/private/file\.txt$ [NC]
- RewriteRule ^(.*)$ - [F,L]
复制代码
- **解释**:阻止访问`/private/file.txt`文件,并返回403 Forbidden错误。
- **注意**:`[F,L]`表示返回403 Forbidden错误,并且这是最后一条规则(`L`)。
### 37. 阻止特定User-Agent
- RewriteEngine On
- RewriteCond %{HTTP_USER_AGENT} ^BlackWido [NC,OR]
- RewriteCond %{HTTP_USER_AGENT} ^2\.0\.50727 [NC]
- RewriteRule ^.*$ - [F,L]
复制代码
- **解释**:阻止User-Agent为`BlackWido`或`2.0.50727`(迅雷)的请求,并返回403 Forbidden错误。
- **注意**:`[F,L]`表示返回403 Forbidden错误,并且这是最后一条规则(`L`)。
### 38. 阻止特定文件类型
- RewriteEngine On
- RewriteRule \.(htaccess|htpasswd|ini|log|sh|inc|bak)$ - [F,NC]
复制代码
- **解释**:阻止访问`.htaccess`, `.htpasswd`, `.ini`, `.log`, `.sh`, `.inc`, `.bak`等敏感文件。
- **注意**:`[F,NC]`表示返回403 Forbidden错误,并且忽略大小写(`NC`)。
### 39. 强制HTTPS
- RewriteEngine On
- RewriteCond %{HTTPS} off
- RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
复制代码
- **解释**:将所有HTTP请求重定向到HTTPS,并返回301永久重定向状态码。
- **注意**:`[L,R=301]`表示这是最后一条规则(`L`),并且返回301重定向(`R=301`)。
### 40. 强制WWW
- RewriteEngine On
- RewriteCond %{HTTP_HOST} !^www\. [NC]
- RewriteRule ^(.*)$ http://www.%{HTTP_HOST}/$1 [L,R=301]
复制代码
- **解释**:将所有非`www`的请求重定向到`www`,并返回301永久重定向状态码。
- **注意**:`[L,R=301]`表示这是最后一条规则(`L`),并且返回301重定向(`R=301`)。
### 41. 强制非WWW
- RewriteEngine On
- RewriteCond %{HTTP_HOST} ^www\.(.*)$ [NC]
- RewriteRule ^(.*)$ http://%1/$1 [L,R=301]
复制代码
- **解释**:将所有`www`的请求重定向到非`www`,并返回301永久重定向状态码。
- **注意**:`[L,R=301]`表示这是最后一条规则(`L`),并且返回301重定向(`R=301`)。
### 42. 阻止特定IP
- RewriteEngine On
- RewriteCond %{REMOTE_ADDR} ^192\.168\.1\.100$
- RewriteRule ^(.*)$ - [F,L]
复制代码
- **解释**:阻止IP地址为`192.168.1.100`的客户端访问,并返回403 Forbidden错误。
- **注意**:`[F,L]`表示返回403 Forbidden错误,并且这是最后一条规则(`L`)。
### 43. 阻止特定目录
- RewriteEngine On
- RewriteCond %{REQUEST_URI} ^/private/ [NC]
- RewriteRule ^(.*)$ - [F,L]
复制代码
- **解释**:阻止访问`/private/`目录下的所有文件,并返回403 Forbidden错误。
- **注意**:`[F,L]`表示返回403 Forbidden错误,并且这是最后一条规则(`L`)。
### 44. 阻止特定文件
- RewriteEngine On
- RewriteCond %{REQUEST_URI} ^/private/file\.txt$ [NC]
- RewriteRule ^(.*)$ - [F,L]
复制代码
- **解释**:阻止访问`/private/file.txt`文件,并返回403 Forbidden错误。
- **注意**:`[F,L]`表示返回403 Forbidden错误,并且这是最后一条规则(`L`)。
### 45. 阻止特定User-Agent
- RewriteEngine On
- RewriteCond %{HTTP_USER_AGENT} ^BlackWido [NC,OR]
- RewriteCond %{HTTP_USER_AGENT} ^2\.0\.50727 [NC]
- RewriteRule ^.*$ - [F,L]
复制代码
- **解释**:阻止User-Agent为`BlackWido`或`2.0.50727`(迅雷)的请求,并返回403 Forbidden错误。
- **注意**:`[F,L]`表示返回403 Forbidden错误,并且这是最后一条规则(`L`)。
### 46. 阻止特定文件类型
- RewriteEngine On
- RewriteRule \.(htaccess|htpasswd|ini|log|sh|inc|bak)$ - [F,NC]
复制代码
- **解释**:阻止访问`.htaccess`, `.htpasswd`, `.ini`, `.log`, `.sh`, `.inc`, `.bak`等敏感文件。
- **注意**:`[F,NC]`表示返回403 Forbidden错误,并且忽略大小写(`NC`)。
### 47. 强制HTTPS
- RewriteEngine On
- RewriteCond %{HTTPS} off
- RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
复制代码
- **解释**:将所有HTTP请求重定向到HTTPS,并返回301永久重定向状态码。
- **注意**:`[L,R=301]`表示这是最后一条规则(`L`),并且返回301重定向(`R=301`)。
### 48. 强制WWW
- RewriteEngine On
- RewriteCond %{HTTP_HOST} !^www\. [NC]
- RewriteRule ^(.*)$ http://www.%{HTTP_HOST}/$1 [L,R=301]
复制代码
- **解释**:将所有非`www`的请求重定向到`www`,并返回301永久重定向状态码。
- **注意**:`[L,R=301]`表示这是最后一条规则(`L`),并且返回301重定向(`R=301`)。
### 49. 强制非WWW
- RewriteEngine On
- RewriteCond %{HTTP_HOST} ^www\.(.*)$ [NC]
- RewriteRule ^(.*)$ http://%1/$1 [L,R=301]
复制代码
- **解释**:将所有`www`的请求重定向到非`www`,并返回301永久重定向状态码。
- **注意**:`[L,R=301]`表示这是最后一条规则(`L`),并且返回301重定向(`R=301`)。
### 50. 阻止特定IP
- RewriteEngine On
- RewriteCond %{REMOTE_ADDR} ^192\.168\.1\.100$
- RewriteRule ^(.*)$ - [F,L]
复制代码
- **解释**:阻止IP地址为`192.168.1.100`的客户端访问,并返回403 Forbidden错误。
- **注意**:`[F,L]`表示返回403 Forbidden错误,并且这是最后一条规则(`L`)。
### 51. 阻止特定目录
- RewriteEngine On
- RewriteCond %{REQUEST_URI} ^/private/ [NC]
- RewriteRule ^(.*)$ - [F,L]
复制代码
- **解释**:阻止访问`/private/`目录下的所有文件,并返回403 Forbidden错误。
- **注意**:`[F,L]`表示返回403 Forbidden错误,并且这是最后一条规则(`L`)。
### 52. 阻止特定文件
- RewriteEngine On
- RewriteCond %{REQUEST_URI} ^/private/file\.txt$ [NC]
- RewriteRule ^(.*)$ - [F,L]
复制代码
- **解释**:阻止访问`/private/file.txt`文件,并返回403 Forbidden错误。
- **注意**:`[F,L]`表示返回403 Forbidden错误,并且这是最后一条规则(`L`)。
### 53. 阻止特定User-Agent
- RewriteEngine On
- RewriteCond %{HTTP_USER_AGENT} ^BlackWido [NC,OR]
- RewriteCond %{HTTP_USER_AGENT} ^2\.0\.50727 [NC]
- RewriteRule ^.*$ - [F,L]
复制代码
- **解释**:阻止User-Agent为`BlackWido`或`2.0.50727`(迅雷)的请求,并返回403 Forbidden错误。
- **注意**:`[F,L]`表示返回403 Forbidden错误,并且这是最后一条规则(`L`)。
### 54. 阻止特定文件类型
- RewriteEngine On
- RewriteRule \.(htaccess|htpasswd|ini|log|sh|inc|bak)$ - [F,NC]
复制代码
- **解释**:阻止访问`.htaccess`, `.htpasswd`, `.ini`, `.log`, `.sh`, `.inc`, `.bak`等敏感文件。
- **注意**:`[F,NC]`表示返回403 Forbidden错误,并且忽略大小写(`NC`)。
### 55. 强制HTTPS
- RewriteEngine On
- RewriteCond %{HTTPS} off
- RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
复制代码
- **解释**:将所有HTTP请求重定向到HTTPS,并返回301永久重定向状态码。
- **注意**:`[L,R=301]`表示这是最后一条规则(`L`),并且返回301重定向(`R=301`)。
### 56. 强制WWW
- RewriteEngine On
- RewriteCond %{HTTP_HOST} !^www\. [NC]
- RewriteRule ^(.*)$ http://www.%{HTTP_HOST}/$1 [L,R=301]
复制代码
- **解释**:将所有非`www`的请求重定向到`www`,并返回301永久重定向状态码。
- **注意**:`[L,R=301]`表示这是最后一条规则(`L`),并且返回301重定向(`R=301`)。
### 57. 强制非WWW
- RewriteEngine On
- RewriteCond %{HTTP_HOST} ^www\.(.*)$ [NC]
- RewriteRule ^(.*)$ http://%1/$1 [L,R=301]
复制代码
- **解释**:将所有`www`的请求重定向到非`www`,并返回301永久重定向状态码。
- **注意**:`[L,R=301]`表示这是最后一条规则(`L`),并且返回301重定向(`R=301`)。
### 58. 阻止特定IP
- RewriteEngine On
- RewriteCond %{REMOTE_ADDR} ^192\.168\.1\.100$
- RewriteRule ^(.*)$ - [F,L]
复制代码
- **解释**:阻止IP地址为`192.168.1.100`的客户端访问,并返回403 Forbidden错误。
- **注意**:`[F,L]`表示返回403 Forbidden错误,并且这是最后一条规则(`L`)。
### 59. 阻止特定目录
- RewriteEngine On
- RewriteCond %{REQUEST_URI} ^/private/ [NC]
- RewriteRule ^(.*)$ - [F,L]
复制代码
- **解释**:阻止访问`/private/`目录下的所有文件,并返回403 Forbidden错误。
- **注意**:`[F,L]`表示返回403 Forbidden错误,并且这是最后一条规则(`L`)。
### 60. 阻止特定文件
- RewriteEngine On
- RewriteCond %{REQUEST_URI} ^/private/file\.txt$ [NC]
- RewriteRule ^(.*)$ - [F,L]
复制代码
- **解释**:阻止访问`/private/file.txt`文件,并返回403 Forbidden错误。
- **注意**:`[F,L]`表示返回403 Forbidden错误,并且这是最后一条规则(`L`)。
### 61. 阻止特定User-Agent
- RewriteEngine On
- RewriteCond %{HTTP_USER_AGENT} ^BlackWido [NC,OR]
- RewriteCond %{HTTP_USER_AGENT} ^2\.0\.50727 [NC]
- RewriteRule ^.*$ - [F,L]
复制代码
- **解释**:阻止User-Agent为`BlackWido`或`2.0.50727`(迅雷)的请求,并返回403 Forbidden错误。
- **注意**:`[F,L]`表示返回403 Forbidden错误,并且这是最后一条规则(`L`)。
### 62. 阻止特定文件类型
- RewriteEngine On
- RewriteRule \.(htaccess|htpasswd|ini|log|sh|inc|bak)$ - [F,NC]
复制代码
- **解释**:阻止访问`.htaccess`, `.htpasswd`, `.ini`, `.log`, `.sh`, `.inc`, `.bak`等敏感文件。
- **注意**:`[F,NC]`表示返回403 Forbidden错误,并且忽略大小写(`NC`)。
### 63. 强制HTTPS
- RewriteEngine On
- RewriteCond %{HTTPS} off
- RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
复制代码
- **解释**:将所有HTTP请求重定向到HTTPS,并返回301永久重定向状态码。
- **注意**:`[L,R=301]`表示这是最后一条规则(`L`),并且返回301重定向(`R=301`)。
### 64. 强制WWW
- RewriteEngine On
- RewriteCond %{HTTP_HOST} !^www\. [NC]
- RewriteRule ^(.*)$ http://www.%{HTTP_HOST}/$1 [L,R=301]
复制代码
- **解释**:将所有非`www`的请求重定向到`www`,并返回301永久重定向状态码。
- **注意**:`[L,R=301]`表示这是最后一条规则(`L`),并且返回301重定向(`R=301`)。
### 65. 强制非WWW
- RewriteEngine On
- RewriteCond %{HTTP_HOST} ^www\.(.*)$ [NC]
- RewriteRule ^(.*)$ http://%1/$1 [L,R=301]
复制代码
- **解释**:将所有`www`的请求重定向到非`www`,并返回301永久重定向状态码。
- **注意**:`[L,R=301]`表示这是最后一条规则(`L`),并且返回301重定向(`R=301`)。
### 66. 阻止特定IP
- RewriteEngine On
- RewriteCond %{REMOTE_ADDR} ^192\.168\.1\.100$
- RewriteRule ^(.*)$ - [F,L]
复制代码
- **解释**:阻止IP地址为`192.168.1.100`的客户端访问,并返回403 Forbidden错误。
- **注意**:`[F,L]`表示返回403 Forbidden错误,并且这是最后一条规则(`L`)。
### 67. 阻止特定目录
- RewriteEngine On
- RewriteCond %{REQUEST_URI} ^/private/ [NC]
- RewriteRule ^(.*)$ - [F,L]
复制代码
- **解释**:阻止访问`/private/`目录下的所有文件,并返回403 Forbidden错误。
- **注意**:`[F,L]`表示返回403 Forbidden错误,并且这是最后一条规则(`L`)。
### 68. 阻止特定文件
- RewriteEngine On
- RewriteCond %{REQUEST_URI} ^/private/file\.txt$ [NC]
- RewriteRule ^(.*)$ - [F,L]
复制代码
- **解释**:阻止访问`/private/file.txt`文件,并返回403 Forbidden错误。
- **注意**:`[F,L]`表示返回403 Forbidden错误,并且这是最后一条规则(`L`)。
### 69. 阻止特定User-Agent
- RewriteEngine On
- RewriteCond %{HTTP_USER_AGENT} ^BlackWido [NC,OR]
- RewriteCond %{HTTP_USER_AGENT} ^2\.0\.50727 [NC]
- RewriteRule ^.*$ - [F,L]
复制代码
- **解释**:阻止User-Agent为`BlackWido`或`2.0.50727`(迅雷)的请求,并返回403 Forbidden错误。
- **注意**:`[F,L]`表示返回403 Forbidden错误,并且这是最后一条规则(`L`)。
### 70. 阻止特定文件类型
- RewriteEngine On
- RewriteRule \.(htaccess|htpasswd|ini|log|sh|inc|bak)$ - [F,NC]
复制代码
- **解释**:阻止访问`.htaccess`, `.htpasswd`, `.ini`, `.log`, `.sh`, `.inc`, `.bak`等敏感文件。
- **注意**:`[F,NC]`表示返回403 Forbidden错误,并且忽略大小写(`NC`)。
### 71. 强制HTTPS
- RewriteEngine On
- RewriteCond %{HTTPS} off
- RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
复制代码
- **解释**:将所有HTTP请求重定向到HTTPS,并返回301永久重定向状态码。
- **注意**:`[L,R=301]`表示这是最后一条规则(`L`),并且返回301重定向(`R=301`)。
### 72. 强制WWW
- RewriteEngine On
- RewriteCond %{HTTP_HOST} !^www\. [NC]
- RewriteRule ^(.*)$ http://www.%{HTTP_HOST}/$1 [L,R=301]
复制代码
- **解释**:将所有非`www`的请求重定向到`www`,并返回301永久重定向状态码。
- **注意**:`[L,R=301]`表示这是最后一条规则(`L`),并且返回301重定向(`R=301`)。
### 73. 强制非WWW
- RewriteEngine On
- RewriteCond %{HTTP_HOST} ^www\.(.*)$ [NC]
- RewriteRule ^(.*)$ http://%1/$1 [L,R=301]
复制代码
- **
-- 本回答由 人工智能 AI智能体 生成,内容仅供参考,请仔细甄别。 |