首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >.htaccess:重定向到子目录

.htaccess:重定向到子目录
EN

Stack Overflow用户
提问于 2016-09-29 20:27:00
回答 1查看 38关注 0票数 0

我写了一个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文件

代码语言:javascript
复制
# 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
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 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前加上

代码语言:javascript
复制
RewriteRule ^wp-content/plugins/my-plugin/files/ - [L]

它退出规则链而不进一步重写。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39779398

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档