WordPress内部网址重写是如何工作的?

时间:2013-04-27 10:22:01

标签: php wordpress mod-rewrite

Wordpress的htaccess文件(通常)看起来像这样

<IfModule mod_rewrite.c>  
RewriteEngine On  
RewriteBase /wordpress/  
RewriteRule ^index\.php$ - [L]  
RewriteCond %{REQUEST_FILENAME} !-f  
RewriteCond %{REQUEST_FILENAME} !-d  
RewriteRule . /wordpress/index.php [L]  
</IfModule>

使用此重写规则,Apache会将未找到的网址重定向到index.php。然后PHP处理URL并为我们提供相关数据。我在很多地方都读过这篇文章。

但实际上PHP如何重定向?我想了解这种重定向背后的技术。

我的意思是它使用PHP header()函数吗?还是其他一些技术?

2 个答案:

答案 0 :(得分:4)

普通英语的规则意味着什么:

  1. 如果网址为/wordpress/index.php,请停止处理规则。

  2. 如果请求的非空网址不是文件或目录,请将请求移交给/wordpress/index.php并停止处理规则。

  3. 在内部,WP然后考虑原始URL,使用正则表达式将其与已知路由模式匹配,并相应地设置请求类型和参数。

答案 1 :(得分:1)

wordpress不会重定向请求。 index.php提供原始request_uri上的内容。