我写了一个Wordpress插件来创建.html文件。我正在尝试获取它,以便当访问者访问sitename.com/newsletters时,它在/wp-content/plugins/my-plugin/files中显示index.php文件
当然,index.php文件是目录中所有其他文件的列表,所以当有人点击sitename.com/newsletters/january.html时,浏览器会加载/wp-content/plugins/my-plugin/files/january.html,但是URL仍然是http://sitename.com/newsletters/january.html
我觉得这个应该能搞定,但不起作用。只是给了我一个“没有找到”的错误。
RewriteRule ^newsletters/(.*) /wp-content/plugins/my-plugin/files/$1 [L]
这是我的.htaccess文件
# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^newsletters/(.*) /wp-content/plugins/my-plugin/files/$1 [L]
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress发布于 2016-09-29 21:17:53
你的规则看上去很好,做了它应该做的事。
但是在.htaccess文件中,当重写URL时,结果URL将再次反馈到规则中。
在这里,它跳过了RewriteRule ^newsletters/...,来到了RewriteRule . /index.php。但是index.php,Wordpress的主要入口点并不知道您在/wp-content/plugins/my-plugin/files/中的文件。
要解决这个问题,您必须防止index.php吞咽重写。您可以通过在RewriteRule前加上
RewriteRule ^wp-content/plugins/my-plugin/files/ - [L]它退出规则链而不进一步重写。
https://stackoverflow.com/questions/39779398
复制相似问题