从WP重定向中排除子文件夹适用于html,但不适用于php文件

时间:2017-11-01 作者:Raphael

我想从WP处理的404页未找到消息中排除某个子文件夹。

我的问题是:

  • example.com/Non_WP/myfile.html - shows correctly

    • example.com/Non_WP/myfile.php - 将触发WP 404-page not found 消息myfile.html 和myfile.php 存在于中Non_WP 文件夹

      我的.htaccess 文件如下所示:

      # BEGIN WordPress
      <IfModule mod_rewrite.c>
      RewriteEngine On
      RewriteBase /
      RewriteCond %{REQUEST_URI} !^/(Non_WP|Non_WP/.*)$ 
      RewriteCond %{REQUEST_FILENAME} !-f
      RewriteCond %{REQUEST_FILENAME} !-d
      RewriteRule . /index.php [L]
      </IfModule>
      # END WordPress
      
      它应该将WP排除在处理“Non\\u WP”文件夹之外。

      WP安装在根文件夹中,没有活动的重定向插件。

      Any idea what I\'m doing wrong? Any idea where to locate the problem other than the .htaccess file?

2 个回复
SO网友:Raphael

很好地定位了问题(目前还不了解)

是的not the .htaccess file.

是的not plugins or themes (我将其全部停用以查看发生了什么)

但我的小php应用程序有自己的session handling 和已修改the header. 只是简单的课本资料(登录等)在WP外工作无缺陷。

我没有分析为什么会发生这种情况,但如果没有会话/标题的内容,我的php应用程序可以与WP一起正常工作。

SO网友:MrWhite

有“其他事情”在发生。如果这两个文件存在(正如您所说的那样),那么您不必做任何事情来允许直接访问。这是两个RewriteCond 指令进行检查REQUEST_FILENAME - 这两个条件确保只有不映射到现有文件/目录的请求才能通过WP路由。如果没有这两个条件,那么任何静态资源(CSS、JS、图像等)都无法工作。

排除的附加条件/Non_WP 目录是一种优化,因为它可以防止文件/目录检查。然而,如上所述,这不应该是使其“工作”的必要条件。

但是,此“优化”应移到# BEGIN WordPress 阻止,以防止您的修改稍后被WordPress覆盖。不要修改WordPress块,而是在WordPress指令(在# BEGIN WordPress 注释):

RewriteRule ^(Non_WP|Non_WP/.*)$ - [L]
这实际上与您的情况相反。如果/Non_WP 访问目录,然后不执行任何操作。中的mod\\u rewrite指令没有进一步处理.htaccess 文件将出现。

结束

相关推荐

使用htaccess反转域名“分片”

之前,我一直在使用域切分来提供来自无CookieList域的图像。我已更改域中的所有路径。com/wp内容/上传/*到/媒体/使用以下htaccess规则:RedirectMatch 301 ^/wp-content/uploads/(.*)$ https://media.domain.com/$1 这导致以下链接:https://www.domain.com/wp-content/uploads/2017/08/image.jpeg 要重定向到:https://media.domai