在我的 Wordpress .htaccess 文件中,我有:
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
这基本上是说如果 URL 的“文件名”部分不作为文件!-f
存在或作为目录存在,!-d
则在内部将请求重写为/index.php
强制请求由index.php
Wordpress 处理。
好的,根据您的其他评论,以下.htaccess
规则将采用http://domain.com/<anything>
并在内部将其重写为http://domain.com/index.php?page=<anything>
,这将在不考虑大小写(NC
标志)的情况下完成,并将保留(预先挂起)任何现有的查询字符串(QSA
标志)。这只对服务器上不存在的文件名和目录执行此操作。
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /index.php?page=$1 [NC,QSA,L]
这确实具有以下副作用,您应该能够以编程方式处理,http://domain.com/register/
将被重写为http://domain.com/index.php?page=register/
包括尾随的“/”,因为这是一个目录引用。同样,您应该能够在您的 PHP 代码中处理它。