我只学到了WordPress重写API的一点知识,足以为插件添加另一个重写规则。如果插件安装在根目录中,那么它就可以工作,但我发现如果在子目录中安装WordPress,那么我需要对进行以下更改。htaccess文件。如果可能的话,我想知道如何自动化这些更改。还有第二个问题。如果转到WordPress中的Permalinks设置,我的自定义更改将被覆盖(除了使用WP重写API的特殊规则)。所以,我需要一些使用WordPress重写API的东西,这样它们就不会被覆盖。
Original .htaccess file
# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /mysubdir/
RewriteRule ^index\\.php$ - [L]
# my special WP Rewrite API line
RewriteRule ^special(.*)$ /mysubdir/wp-content/plugins/special/app/$1 [QSA,L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /mysubdir/index.php [L]
</IfModule>
# END WordPress
Changes I Made To Make Plugin Work in a Subdir
# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
#RewriteBase /mysubdir/
RewriteRule ^index\\.php$ - [L]
# my special WP Rewrite API line
RewriteRule ^special(.*)$ /mysubdir/wp-content/plugins/special/app/$1 [QSA,L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
#RewriteRule . /mysubdir/index.php [L]
RewriteRule . index.php [L]
</IfModule>
# END WordPress
SO网友:Sawant
如果不希望Wordpress覆盖中的更改。htaccess文件,然后确保在Wordpress注释块之外写入更改,即在此之前或之后:
# BEGIN WordPress
...
# END WordPress
将此区域视为Wordpress的领地。一旦Wordpress必须对其进行任何更改,该块中的任何内容都将被Wordpress覆盖。htaccess。
这是在Wordpress注释块之后可以执行的操作:
# BEGIN WordPress
...
# END WordPress
<IfModule mod_rewrite.c>
# Write your rewrite rules here.
</IfModule>