2014-01-17 32 views
2

这是什么.htaccess文件在做什么?我不知道.htaccess的任何内容。请帮助。WordPress的多站点.htaccess ..请解释功能

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

# add a trailing slash to /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] 

回答

4
RewriteEngine On 

这开启了重写引擎,所有的规则都被忽略,这是不是在htaccess文件

RewriteBase/

这告诉重写引擎是相对URL路径应以此为基础

RewriteRule ^index\.php$ - [L] 

此规则表示:“如果请求是index.php,然后通过重写引擎传递,并停止重写”

RewriteRule ^([_0-9a-zA-Z-]+/)?wp-admin$ $1wp-admin/ [R=301,L] 

这条规则对<some stuff>然后wp-admin一致,不同的是它用斜线结束浏览器重定向到相同的URL。例如:http://example.com/foo/bar/wp-admin被重定向到http://example.com/foo/bar/wp-admin/

RewriteCond %{REQUEST_FILENAME} -f [OR] 
RewriteCond %{REQUEST_FILENAME} -d 
RewriteRule^- [L] 

这条规则说,如果请求的是一个文件或目录的存在,使其通过重写引擎停止重写。

RewriteRule ^([_0-9a-zA-Z-]+/)?(wp-(content|admin|includes).*) $2 [L] 

该规则针对<some stuff>然后wp-contentwp-adminwp-includes或匹配,并且<some stuff>实施例之后重写所述URI以一切:http://example.com/blah/blah/wp-admin/some/more被改写为/wp-admin/some/more

RewriteRule ^([_0-9a-zA-Z-]+/)?(.*\.php)$ $2 [L] 

这条规则对<some stuff>后跟任意PHP文件相匹配,并重写的URI <some stuff>后的一切。例如:http://example.com/abc/123/somefile.php被重写为/somefile.php

RewriteRule . index.php [L] 

最后,如果得到了应用没有其他的规则,这个规则改写一切以/index.php