WordPress如何创建阿帕奇知道的URL?

时间:2017-02-18 作者:Matt

在WordPress中创建页面时,它只是数据库表中的一个条目;在那个位置没有实际的文件。然而,我可以自己在那个位置创建一个文件,它会从WordPress中窃取页面。我删除了文件,它会无缝地返回到WordPress页面。

我只是好奇这是如何实现的。大概WordPress和Apache(?)之间正在进行通信。

1 个回复
最合适的回答,由SO网友:Fayaz 整理而成

实际上,Apache和WordPress之间没有通信。“魔法”正在Apache中发生mod_rewrite 规则。

对于标准WordPress安装,您有以下规则.htaccess:

# 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
请注意这一行:RewriteRule . /index.php [L]这里,我们告诉Apache在内部将任何URL请求重定向到/index.php.

Unless: 该行:RewriteCond %{REQUEST_FILENAME} !-f 变为false。也就是说,加上这个RewriteCond 与上述RewriteRule, 我们告诉Apache将所有请求发送到/index.php, 但是not if it\'s an existing file.

Also, when 该行:RewriteCond %{REQUEST_FILENAME} !-d 变为false。也就是说,加上这个RewriteCond 与上述RewriteRule, 我们正在告诉Apache将所有请求发送到/index.php, 但是not if it\'s an existing directory.

因此,最终,除非是现有文件或现有目录,否则Apache会在内部将所有其他请求发送到/index.php.

如您所见,Apache和;WordPress。Apache自己决定一切,我们告诉它使用RewriteRuleRewriteCond 指令。

了解更多信息mod_rewrite HERE.

相关推荐

如何启用Keep Alive(保持活动状态)(不访问APACHE)

我正在监视我的网站(faghatseo.com) 看到有关保持活动状态的错误。我在google上搜索了这个问题,作为解决方案,有一个代码<IfModule mod_headers.c> Header set Connection keep-alive </IfModule> 你必须放在.htaccess 按以下方向归档:/public_html/.htaccess当我输入代码时,出现了错误500,我的网站宕机了!内部服务器错误服务器遇到内部错误或配置错误