htaccess

.htaccess 是一个分布式配置文件,它是 Apache 在每个目录的基础上处理配置更改的方式。

WordPress 使用此文件来操作 Apache 如何从其根目录及其子目录中提供文件。最值得注意的是,WP 修改了这个文件以能够处理漂亮的永久链接。

此页面可用于恢复损坏的 .htaccess 文件(例如行为不端的插件)。

基本可湿性粉剂 #

# BEGIN WordPress 

RewriteEngine On 
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}] 
RewriteBase / 
RewriteRule ^index\.php$ - [L] 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d
重写规则。/index.php [L] 

# 结束 WordPress

顶部↑

多站点 #

顶部↑

WordPress 3.5 及更高版本 #

如果您在 WordPress 3.5 或更高版本上激活了多站点,请使用其中之一。

子文件夹示例

# BEGIN WordPress Multisite 
# 使用子文件夹网络类型:https: 

//wordpress.org/support/article/htaccess/#multisite RewriteEngine On 
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}] 
RewriteBase / 
RewriteRule ^index\ .php$ - [L] 

# 在 /wp-admin RewriteRule 中添加一个斜杠
^([_0-9a-zA-Z-]+/)?wp-admin$ $1wp-admin/ [R=301,L] 

RewriteCond %{REQUEST_FILENAME} -f [OR] 
RewriteCond %{REQUEST_FILENAME} -d 
RewriteRule ^ - [L] 
RewriteRule ^([_0-9a-zA-Z-]+/)?(wp-(content|admin|includes) .*) $2 [L] 
RewriteRule ^([_0-9a-zA-Z-]+/)?(.*\.php)$ $2 [L] 
RewriteRule 。index.php [L] 

# 结束 WordPress多站点

子域示例

# BEGIN WordPress Multisite 
# 使用子域网络类型:https: 

//wordpress.org/support/article/htaccess/#multisite RewriteEngine On 
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}] 
RewriteBase / 
RewriteRule ^index\ .php$ - [L] # 在 /wp-admin 
RewriteRule

中添加一个斜杠^wp-admin$ wp-admin/ [R=301,L] 
RewriteCond %{REQUEST_FILENAME} -f [OR] 
RewriteCond %{REQUEST_FILENAME} - d 
RewriteRule ^ - [L] 
RewriteRule ^(wp-(content|admin|includes).*) $1 [L] 
RewriteRule ^(.*\.php)$ $1 [L] 
RewriteRule 。index.php [L] 
# 结束 WordPress多站点

顶部↑

WordPress 3.4 及以下 #

如果您最初使用 3.4 或更早版本安装了 WordPress 并激活了 Multisite,那么您需要使用以下之一:

子文件夹示例

WordPress 3.0 到 3.4.2

# BEGIN WordPress Multisite 
# 使用子文件夹网络类型: https://wordpress.org/support/article/htaccess/#multisite 

RewriteEngine On 
RewriteBase / 
RewriteRule ^index\.php$ - [L] 

# 上传文件
RewriteRule ^([_0- 9a-zA-Z-]+/)?files/(.+) wp-includes/ms-files.php?file=$2 [L] 

# 在 /wp-admin RewriteRule 中添加一个斜杠
^([_0-9a -zA-Z-]+/)?wp-admin$ $1wp-admin/ [R=301,L] 

RewriteCond %{REQUEST_FILENAME} -f [OR] 
RewriteCond %{REQUEST_FILENAME} -d 
RewriteRule ^ - [L] 
RewriteRule ^[_0-9a-zA-Z-]+/(wp-(content|admin|includes).*) $1 [L] 
RewriteRule ^[_0-9a-zA-Z-]+/(.*\.php )$ $1 [L]
重写规则。index.php [L] 

# 结束 WordPress多站点

子域示例

# BEGIN WordPress Multisite 
# 使用子域网络类型:https: //wordpress.org/support/article/htaccess/#multisite 

RewriteEngine On 
RewriteBase / 
RewriteRule ^index\.php$ - [L] 

# 上传文件
RewriteRule ^files/(. +) wp-includes/ms-files.php?file=$1 [L] 

RewriteCond %{REQUEST_FILENAME} -f [OR] 
RewriteCond %{REQUEST_FILENAME} -d 
RewriteRule ^ - [L] 
RewriteRule 。index.php [L] 

# 结束 WordPress多站点

顶部↑

一般示例 #

顶部↑

选项 #

任何以+开头的选项都会添加到当前有效的选项中,而任何以开头的选项都会从当前有效的选项中删除。

Options 指令的可能值是以下任意组合:

没有任何

所有选项均已关闭。

全部

除多视图外的所有选项。这是默认设置。

执行CGI

允许使用 mod_cgi 执行 CGI 脚本。

跟随符号链接

服务器将遵循此目录中的符号链接。

包括

允许 mod_include 提供的服务器端包含。

包括NOEXEC

允许服务器端包含,但禁用 #exec cmd 和 #exec cgi。

索引

URL 映射到一个目录,而不是 DirectoryIndex,一个格式化的目录列表。

多视图

使用 mod_negotiation 允许内容协商“MultiViews”。

SymLinksIfOwnerMatch

只关注目标属于与链接相同的用户 ID 的符号链接。

这将禁用所有选项,然后仅启用 mod_rewrite 所必需的 FollowSymLinks。

选项 无
选项 FollowSymLinks

顶部↑

目录索引 #

DirectoryIndex设置 Apache 在请求目录时将提供的文件。

可能会给出几个 URL,在这种情况下,服务器将返回它找到的第一个。

DirectoryIndex index.php index.html /index.php

顶部↑

默认语言 #

DefaultLanguage将导致所有还没有与之关联的特定语言标签的文件将使用它。

默认语言 a

顶部↑

默认字符集 #

设置在 HTTP 标头中发送的默认字符编码。请参阅:在 .htaccess 中设置字符集信息

AddDefaultCharset UTF-8

为特定文件设置字符集

AddType '文本/html; 字符集=UTF-8' .html

为特定文件设置

添加字符集 UTF-8 .html

顶部↑

服务器签名 #

ServerSignature指令允许在服务器生成的文档下配置尾随页脚行。可以选择在服务器生成的页面中添加包含服务器版本和虚拟主机名的行(内部错误文档、FTP 目录列表、mod_status 和 mod_info 输出等,但不是 CGI 生成的文档或自定义错误文档)。

添加一行,其中包含服务虚拟主机的服务器版本号和 ServerName

离开

抑制页脚行

电子邮件

创建一个“mailto:”对所引用文档的 ServerAdmin 的引用

SetEnv SERVER_ADMIN admin@site.com ServerSignature
电子邮件

顶部↑

强制下载文件 #

下面将导致对以指定扩展名结尾的文件的任何请求不会显示在浏览器中,而是强制“另存为”对话框,以便客户端可以下载。

AddType application/octet-stream .avi .mpg .mov .pdf .xls .mp4

顶部↑

HTTP 压缩 #

AddOutputFilter 指令将文件扩展名映射到过滤器,过滤器将在服务器响应发送到客户端之前对其进行处理。这是对其他地方定义的任何过滤器的补充,包括 SetOutputFilter 和 AddOutputFilterByType。此映射将合并到任何已经生效的映射,覆盖同一扩展已存在的任何映射。

另请参阅:https://developers.google.com/speed/docs/insights/EnableCompression

AddOutputFilterByType DEFLATE text/html text/plain text/xml application/xml application/xhtml+xml text/javascript text/css application/x-javascript 
BrowserMatch ^Mozilla/4 gzip-only-text/html 
BrowserMatch ^Mozilla/4\.0 [678] 无 gzip
浏览器匹配 \bMSIE !no-gzip !gzip-only-text/html

强制压缩某些文件

SetOutputFilter DEFLATE

顶部↑

发送自定义 HTTP 标头 #

Header 指令允许您为每个请求或特定文件发送 HTTP 标头。您可以使用Firebug、Chrome 开发工具、Wireshark在线工具查看网站的 HTTP 标头。

标头集 X-Pingback "http://www.askapache.com/xmlrpc.php"
标头集内容-语言 "en-US"

顶部↑

取消设置 HTTP 标头 #

这将取消设置 HTTP 标头,使用always会更加努力地删除它们。

标头未设置 Pragma
标头始终未设置 WP-Super-Cache
标头始终未设置 X-Pingback

顶部↑

密码保护登录 #

这对于保护wp-login.php文件非常有用。您可以使用这个htpasswd 生成器

基本认证

AuthType Basic 
AuthName "Password Protected" 
AuthUserFile /full/path/to/.htpasswd
要求有效用户
满足所有

摘要式身份验证

AuthType Digest 
AuthName “密码保护” 
AuthDigestDomain /wp-login.php https://www.askapache.com/wp-login.php 
AuthUserFile /full/path/to/.htpasswd
要求有效用户
满足所有

顶部↑

需要特定 IP #

这是一种只允许某些 IP 地址被允许访问的方法。

ErrorDocument 401 默认
ErrorDocument 403 默认


Order deny,allow 
Deny from all 
Allow from 198.101.159.98 localhost

顶部↑

保护敏感文件 #

这会拒绝对您的 wp-config 文件、error_logs、php.ini 和 htaccess/htpasswds 的所有 Web 访问。

命令拒绝,允许
拒绝所有人

顶部↑

需要 SSL #

这将强制使用 SSL,并且需要确切的主机名,否则它将重定向到 SSL 版本。/wp-admin/.htaccess在文件中很有用。

SSLOptions +StrictRequire 
SSLRequireSSL 
SSLRequire %{HTTP_HOST} eq "www.wordpress.com" 
ErrorDocument 403 https://www.wordpress.com

顶部↑

外部资源 #

顶部↑

也可以看看 #

Powered by BetterDocs

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注

Scroll to Top