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

时间:2016-03-07 10:51:25

标签: wordpress .htaccess

我在 www.site.com/blog / 上安装了我的wordpress,但我想在博客目录前添加语言代码( www.site.com/us/博客 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

2 个答案:

答案 0 :(得分:0)

RewriteEngine On
RewriteRule ^(.*)/blog/$ blog/?language=$1

自从我写完.htaccess以来已经有一段时间了,请告诉我这是怎么回事。

编辑:这是一个有用的教程如何工作:) https://www.addedbytes.com/articles/for-beginners/url-rewriting-for-beginners/

答案 1 :(得分:0)

这应该适合你:

RewriteEngine on
RewriteRule ^[a-z]{2}/(.*)$ /$1 [QSA,L]

它检查URL开头的任何2个字母前缀,后跟其他任何内容,然后将其视为对该位的请求,因此/us/blog将被视为对{{1}的请求},就像/blog被视为/es/page/123的请求一样。只要访问者访问带前缀的URL,就不会重定向该地址。

如果您想更具体地说明要使用哪种语言前缀,请改为:

/page/123

确保在第一组parantheses之间添加你想要的那些(并用管道(RewriteEngine on RewriteRule ^(es|fr|us)/(.*)$ /$2 [QSA,L] 分隔),如上所示。