Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/wordpress/12.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在URI中添加虚拟目录?_Wordpress_.htaccess - Fatal编程技术网

Wordpress 有没有办法使用htaccess在URI中添加虚拟目录?

Wordpress 有没有办法使用htaccess在URI中添加虚拟目录?,wordpress,.htaccess,Wordpress,.htaccess,我的wordpress安装在www.site.com/blog/上,但我想在博客目录前面添加语言代码(www.site.com/us/blog/,www.site.com/es/blog/等等)。有办法做到这一点吗?我需要将这些虚拟目录保存在URI中,因此当访问www.site.com/us/blog时,我希望在地址栏中显示www.site.com/us/blog 这是www.site.com/blog/目录中的.htaccess文件 # BEGIN WordPress <IfModul

我的wordpress安装在www.site.com/blog/上,但我想在博客目录前面添加语言代码(www.site.com/us/blog/www.site.com/es/blog/等等)。有办法做到这一点吗?我需要将这些虚拟目录保存在URI中,因此当访问www.site.com/us/blog时,我希望在地址栏中显示www.site.com/us/blog

这是www.site.com/blog/目录中的.htaccess文件

# BEGIN WordPress

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /blog
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . index.php [L]
</IfModule>

# END WordPress
#开始WordPress
重新启动发动机
重写库/博客
重写cond%{REQUEST_FILENAME}-F
重写cond%{REQUEST_FILENAME}-D
重写规则。index.php[L]
#结束WordPress
我已经有一段时间没写了。htaccess,让我知道这是怎么回事

编辑:这里有一个关于它如何工作的有用教程:)

我已经有一段时间没写了。htaccess,让我知道这是怎么回事

编辑:这里有一个关于它如何工作的有用教程:)
这应该适合您:

RewriteEngine on
RewriteRule ^[a-z]{2}/(.*)$ /$1 [QSA,L]
它检查URL开头的任何两个字母前缀,后跟任何其他字符,然后将其视为对后面位的请求,因此
/us/blog
将被视为对
/blog
的请求,就像
/es/page/123
将被视为对
/page/123
的请求一样。只要访问者访问带前缀的URL,地址就不会被重定向

如果您想更具体地说明要使用什么语言前缀,请执行以下操作:

RewriteEngine on
RewriteRule ^(es|fr|us)/(.*)$ /$2 [QSA,L]

确保在第一组paranethes(并由管道(
|
)分隔)之间添加所需的paranethes,如上图所示。

这应该适用于您:

RewriteEngine on
RewriteRule ^[a-z]{2}/(.*)$ /$1 [QSA,L]
它在URL开头检查任何两个字母的前缀,然后再检查其他任何内容,然后将其视为对后面一位的请求,因此
/us/blog
将被视为对
/blog
的请求,就像
/es/page/123
将被视为对
/page/123
的请求一样,只要访问者访问前缀URL,该地址将不会被重定向

如果您想更具体地说明要使用什么语言前缀,请执行以下操作:

RewriteEngine on
RewriteRule ^(es|fr|us)/(.*)$ /$2 [QSA,L]

确保在第一组paranethes(并用管道(
|
)分隔)之间添加所需的paranethes,如上图所示。

上面@hazonko的答案可能更好,因为他允许您获取包含所需语言的HTTP get参数(如果您需要)。我已使用您的第二种方法编辑了我的问题,地址栏中的URI是正确的,但wordpress重定向到404页面。@Hazonko也是如此。谢谢。请尝试删除
L
中的
[QSA,L]
(和逗号)。确保它高于您可能已经拥有的主要wordpress重写规则(但在
RewriteEngine on
L
之后,意思是“停止阅读此处的规则,但您可能希望它继续,并执行正常的wordpress重写。上面@hazonko的回答可能更好,因为他允许您获取包含所请求语言的HTTP get参数(如果您需要的话)。我已使用您的第二种方法编辑了我的问题,地址栏中的URI是正确的,但wordpress重定向到404页面。@Hazonko也是如此。谢谢。请尝试删除
L
中的
[QSA,L]
(和逗号)。确保它高于您可能已经拥有的主要wordpress重写规则(但是在
RewriteEngine on
L
之后,这里的意思是“停止读取规则,但您可能希望它继续,并执行正常的wordpress重写。”。