Apache 在不修改.htaccess的情况下重写URL-WordPress是如何做到的?
当我将WordPress站点的地址(URL)设置为=Apache 在不修改.htaccess的情况下重写URL-WordPress是如何做到的?,apache,wordpress,.htaccess,mod-rewrite,url-rewriting,Apache,Wordpress,.htaccess,Mod Rewrite,Url Rewriting,当我将WordPress站点的地址(URL)设置为=http://www.example.com,则网站将重定向所有用户,以访问带有“www.”前缀的网站: (例如…将被重定向到…) 当我检查.htaccess文件时,没有处理丢失的“www”的规则。WordPress是如何做到这一点的 WordPress.hAccess文件: # BEGIN WordPress <IfModule mod_rewrite.c> RewriteEngine On RewriteBase / Rewri
http://www.example.com
,则网站将重定向所有用户,以访问带有“www.”前缀的网站:
(例如…将被重定向到…)
当我检查.htaccess文件时,没有处理丢失的“www”的规则。WordPress是如何做到这一点的
WordPress.hAccess文件:
# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress
#开始WordPress
重新启动发动机
重写基/
重写规则^index\.php$-[L]
重写cond%{REQUEST_FILENAME}-F
重写cond%{REQUEST_FILENAME}-D
重写规则/index.php[L]
#结束WordPress
WordPress安装的wp includes文件夹中的canonical.php文件就是这个特殊魔法发生的地方——有一个对wp_redirect的调用,它发送一个带有规范url的301:Moved permanually头
FWIW,这在很大程度上与wp includes/rewrite.php中的重写/重定向机制无关,该机制处理生成.htaccess文件并将永久链接结构重写规则保存到WordPress选项中(wp_选项中的选项名称“redirect_rules”)