Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/237.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php htaccess wordpress子文件夹上的不同404_Php_Wordpress_.htaccess_Redirect - Fatal编程技术网

Php htaccess wordpress子文件夹上的不同404

Php htaccess wordpress子文件夹上的不同404,php,wordpress,.htaccess,redirect,Php,Wordpress,.htaccess,Redirect,我在域名的子文件夹www.example.com/blog中安装了Wordpress。它有自己的404页面,不幸的是,如果在我的主网站上找不到页面,它也会显示 我想在子文件夹中重定向我的主网站和博客的Wordpress 这是我到目前为止的代码。但是第二个正在覆盖第一个。如何使wordpress重定向仅应用于子文件夹 RewriteEngine On RewriteCond %{HTTP_HOST} !^(www\.)?example\.com$ [NC] RewriteRule ^(.*) ht

我在域名的子文件夹
www.example.com/blog
中安装了
Wordpress
。它有自己的404页面,不幸的是,如果在我的主网站上找不到页面,它也会显示

我想在子文件夹中重定向我的主网站和博客的Wordpress

这是我到目前为止的代码。但是第二个正在覆盖第一个。如何使wordpress重定向仅应用于子文件夹

RewriteEngine On
RewriteCond %{HTTP_HOST} !^(www\.)?example\.com$ [NC]
RewriteRule ^(.*) http://www.example.com/$1 [R=301,NE,L]

ErrorDocument 404 /notfound/404.html

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /blog/
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /blog/index.php [L]
</IfModule>
重新编写引擎打开
重写cond%{HTTP_HOST}^(www\)?示例\.com$[NC]
重写规则^(.*)http://www.example.com/$1[R=301,东北,东北]
ErrorDocument 404/notfound/404.html
重新启动发动机
重写库/博客/
重写规则^index\.php$-[L]
重写cond%{REQUEST_FILENAME}-F
重写cond%{REQUEST_FILENAME}-D
重写规则/blog/index.php[L]

好的,如果您的主网站是www.domain.com,而您的WP博客是www.domain.com/blog,那么为什么WP和非WP规则都在同一个.htaccess文件中? 我的意思是,子文件夹中的WP应该在同一子文件夹中具有.htaccess,而主网站在根文件夹中具有不同的.htaccess

编辑:假设主网站不是WP,您应该有2个不同的.htaccess文件。第一个具有非WP规则的文件进入主网站目录,如下所示:

RewriteEngine On
RewriteCond %{HTTP_HOST} !^(www\.)?domain\.com$ [NC]
RewriteRule ^(.*) http://www.domain.com/$1 [R=301,NE,L]
ErrorDocument 404 /notfound/404.html
第二个文件只是一个普通的WP.htaccess文件,并转到WP目录:

RewriteEngine On
RewriteBase /blog/
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /blog/index.php [L]

那就行了。

啊,好的,我已经把Wordpress代码放到了/blog中。但是我的博客停止工作了。你知道我需要如何更改代码吗?好的,你能发布主网站文件夹和WP博客文件夹中的.htaccess的内容吗?所以前4行是主网站:
RewriteCond%{HTTP_HOST}上的RewriteEngine^(www\.)?domain\.com$[NC]重写规则^http://www.domain.com/$1[R=301,NE,L]ErrorDocument 404/notfound/404.html
另一部分将用于Wordpress:
RewriteEngine On RewriteBase/blog/RewriteRule^index\.php$-[L]RewriteCond%{REQUEST_FILENAME}-f RewriteCond%{REQUEST_FILENAME}-重写规则/blog/index.php[L]
好的,我不知道为什么,但我用wordpress设置中相同的代码重写了.htaccess文件,现在它工作了。。。我在代码中找不到任何差异。那么你到底说什么对你有用呢?