Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/url/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Apache 在不修改.htaccess的情况下重写URL-WordPress是如何做到的?_Apache_Wordpress_.htaccess_Mod Rewrite_Url Rewriting - Fatal编程技术网

Apache 在不修改.htaccess的情况下重写URL-WordPress是如何做到的?

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

当我将WordPress站点的地址(URL)设置为=
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”)