2014-11-06 66 views
1

我目前服务的文章的博客,与固定链接格式如下:重定向固定链接并加载相同的内容

这是当前的.htaccess内容:

# Permalinks 
RewriteEngine on 

# Articles (english url) 
RewriteRule ^articles/?$ /articles.php [QSA,L] 
RewriteRule ^articles/([a-z_-]+)/?$ /articles.php?cat=$1 [QSA,L] 
RewriteRule ^articles/([a-z_-]+)/([0-9]+)/?$ /articles.php?cat=$1&id=$2 [QSA,L] 

现在,我也把所有的文章翻译成西班牙文,所以我认为有一个PE西班牙语中的链接将会更好。我需要建立一个别名,使这种重定向情况:

  • /articulos /僵尸=>/文章 /僵尸
  • /articulos /僵尸/ 48 =>/文章 /僵尸/ 48

在更少的话,包含/articulos/XYZ所有URL请求/ 123应重定向到/articles/xyz/123而不复制当前的htaccess结构。谢谢!

+1

什么是 “不复制当前htaccess的结构” 是什么意思? – 2014-11-06 07:25:41

+0

如果'/ articulos/zombies =>/articles/zombies'重定向发生了,你将如何提供西班牙文内容,因为URL已经变得与英文相同,即'/ articles/zombies' – anubhava 2014-11-06 07:51:01

+0

@JonLin我的意思是没有复制整个重写规则结构。 – andufo 2014-11-06 13:54:02

回答

1

试试这个:

# Permalinks 
RewriteEngine on 

RewriteRule ^articulos/(.*) articles/$1 [QSA,ENV=SPANISH:true] 

RewriteRule ^articles/?$ /articles.php [QSA] 
RewriteRule ^articles/([a-z_-]+)/?$ /articles.php?cat=$1 [QSA,L] 
RewriteRule ^articles/([a-z_-]+)/([0-9]+)/?$ /articles.php?cat=$1&id=$2 [QSA,L] 

Header set Set-Cookie "language=english; path=/;" env=!SPANISH 
Header set Set-Cookie "language=spanish; path=/;" env=SPANISH 
+0

工作很好!只是一个简单的问题,如果我需要发送?hl = es(仅在使用关键字/网址时)应添加什么内容,以便我可以强制文章以该西班牙文的形式发送? – andufo 2014-11-06 14:25:07

+0

@andufo我在我的答案更新代码。你可以在'articles.php'中检查语言cookie – makhov 2014-11-06 21:59:47