Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/.htaccess/6.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
Wordpress htaccess如何将404重定向到变量url而不引起无限循环?_Wordpress_.htaccess_Mod Rewrite - Fatal编程技术网

Wordpress htaccess如何将404重定向到变量url而不引起无限循环?

Wordpress htaccess如何将404重定向到变量url而不引起无限循环?,wordpress,.htaccess,mod-rewrite,Wordpress,.htaccess,Mod Rewrite,我有一个站点,当它在url的第一个相对路径上出现404错误时,我希望它立即重定向到与用户键入内容相关的路径 例如,输入是:site.com/input 我希望此第一级url字符串重定向到:site.com/m/input 我正在尝试类似的方法,它可以工作,但会导致无限循环: RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d # RewriteRule . /index.php [L] RewriteRu

我有一个站点,当它在url的第一个相对路径上出现404错误时,我希望它立即重定向到与用户键入内容相关的路径

例如,输入是:site.com/input 我希望此第一级url字符串重定向到:site.com/m/input

我正在尝试类似的方法,它可以工作,但会导致无限循环:

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
# RewriteRule . /index.php [L]
RewriteRule ^ http://www.website.com/m%{REQUEST_URI} [R,L]
因此,基本上,我希望它只触发一次,如果/m/{variable url}处的url不存在,那么我希望它降落到实际的404页面或wordpress default的重写规则上/index.php[L]

这可能吗? 非常感谢,,
Leon

如果已经是
/m/
URL,则添加另一个不重定向的条件:

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} !^/m/
RewriteRule ^ http://www.website.com/m%{REQUEST_URI} [R,L]

这是工作重定向,但404页不再显示,也没有正确的页面。两者都是由服务器而不是模板指向404页面。RewriteBase/RewriteRule^index\.php$-[L]RewriteCond%{REQUEST_FILENAME}上的RewriteEngine-f RewriteCond%{REQUEST_FILENAME}-已重写cond%{REQUEST_URI}!m RewriteRule^(.*){REQUEST_URI}[L,R=301]干杯,伙计,我在404.php页面上使用了另一个选项,看起来效果不错$url='http://'$_服务器['SERVER_NAME']$_服务器['REQUEST_URI'];if(false!==strpos($url,“/m/”){}else{header(“HTTP/1.1 301永久移动”);header(“位置:);}