wordpress htaccess文件导致新文件和文件夹显示404错误?

时间:2018-05-01 18:04:23

标签: wordpress .htaccess

我的htaccess文件中有以下与wordpress相关的代码。

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>

我创建了一个名为test的新文件夹,当我尝试从浏览器访问它时,它显示404错误。

当我从htaccess文件中删除上面的代码时,我可以访问新文件夹,但wordpress网站的其余部分会中断。所以我根本无法摆脱这段代码。

我尝试将其添加到代码中:

RewriteCond %{REQUEST_URI} !^/test

所以它看起来像这样:

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} !^/test
RewriteRule . /index.php [L]
</IfModule>

没有结果,我仍然看到404错误。

有人可以就此问题提出建议吗?

我尝试了很多方法,包括这个,但仍然无效!

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_URI}  !(test) [NC]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>

1 个答案:

答案 0 :(得分:0)

如何将WordPress安装移动到子文件夹

将wp- *,index.php,.htaccess移动到新的wordpress文件夹 编辑wordpress / .htaccess:

找到这一行:RewriteRule。 /index.php [L] 成功:RewriteRule。 /wordpress/index.php [L] 在/ path / to / www中创建一个名为.htaccess的新文件,然后添加:

RewriteEngine on
RewriteRule ^$ https://www.example.com/ [L]

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^/wordpress/index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /wordpress/$1 [L]
</IfModule>

另一种在子目录中移动所有内容的方法

  • 将htaccess重命名为backhtaccess。
  • 登录管理员
  • 转到设置 - &gt; permalinks-&GT;保存更改。全部完成。

=========================更新的答案================= =============

在主题functions.php中添加此行:

include(ABSPATH . 'custom.php');

说明:

你的wp-config.php应该包含以下代码(靠近页面底部):

/** Absolute path to the WordPress directory. */
if ( !defined('ABSPATH') )
    define('ABSPATH', dirname(__FILE__) . '/');

他们正在将wordpress安装的路径保存到ABSPATH。

它将类似于“/ var / www / foo /”或类似内容。因此,您可以使用文件路径连接ABSPATH。例如,如果您的php文件位于某个文件夹中,例如“example.com/somefolder/custom.php”,您将使用

include(ABSPATH . 'somefolder/custom.php');

希望这有帮助!

=======================答案3 =================== ===

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} !^/(test/.*)$ 
</IfModule>

您可以使用

将内容列入白名单
RewriteCond %{REQUEST_URI} !^/(test|test/.*)$

参考链接:

.htaccess & Wordpress: Exclude folder from RewriteRule