Com*_*cus 5 wordpress .htaccess
在子目录上,例如http://website.com/sub/index.html具有自己的.htaccess某种原因,该目录仍然显示我在其中的Wordpress所拥有的404页面。
.htaccess用于子目录:
ErrorDocument 404 /404.html
Run Code Online (Sandbox Code Playgroud)
.htaccess主目录:
RewriteEngine on
RewriteCond %{HTTP_HOST} ^website.net$ [OR]
RewriteCond %{HTTP_HOST} ^www.website.net$
RewriteRule ^foghelper.php$ http://website.net/subdirone/ [R=301,L]
RewriteRule ^foghelper.php$ http://website.net/subdirtwo/ [R=301,L]
# DO NOT REMOVE THIS LINE AND THE LINES ABOVE jNLK5d:REDIRECTID
# 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>
# END WordPress
Run Code Online (Sandbox Code Playgroud)
hta中的链接已过审查,以防您想知道。
编辑:
在添加RewriteCond %{REQUEST_URI} !^/?sub/之前RewriteRule . /index.php [L],错误似乎仍然存在。
所有内容都通过 wordpress 路由,因此当对类似/sub/no_file.html和 it 的请求不存在时,wordpress 会通过其路由它,index.php因为它满足 和!-f条件!-d(不是现有文件,也不是现有目录)。然后它决定找不到该资源,/sub/no_file.html因此它会显示自己的 404 文件。
如果您希望发送到 /sub 的请求绕过 WordPress 的路由,以便在/sub/不存在的文件被请求/404.html时得到服务,您可以RewriteRule . /index.php [L]
在 WordPress 规则之前添加此行,以便它们看起来像这样:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} !^/?sub/
RewriteRule . /index.php [L]
</IfModule>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
6155 次 |
| 最近记录: |