在相同的网络空间,但不同的内容/语言两个域通过htaccess以及GET参数

问题描述 投票:0回答:1

我需要一个重写规则或访问网页一样的一些其他的解决办法

www.domain.com/feature.php?lang=de

www.domain.de/feature.php

它位于同一网络空间作为

www.domain.com.

从一开始就:

我有一个域名

www.domain.com 

与通过语言GET参数触发多国语言的内容。

例如:

www.domain.com/features.php?lang=fr 

将负载从数据库法语内容,而

www.domain.com/features.php 

显示默认的英文内容。

对于搜索引擎友好的URL干净我创建了下面的通用htaccess的重写规则:

RewriteRule ^/?(.*)/(.*).php /$2.php?lang=$1 [L,QSA]

这将使像URL

www.domain.com/features.php?lang=fr

是从搜索引擎友好版链接查阅:

www.domain.com/fr/features.php

还有其他语言如

www.domain.com/features.php?lang=it

这个覆盖,并可以通过清洁网址访问,

www.domain.com/it/features.php

我需要的是为德语的特殊情况下的解决方案,因为德国的语言,我有一个名为domain.de一个专门的领域。所以它不应该是一个路径URL访问状

www.domain.com/de/features.php 

如其他语言,而是从

www.domain.de/features.php

我可能要domain.de的域对象指向同一个网站空间为domain.com,因为它们共享相同的PHP文件,样式表和图像。

我不知道如何编辑htaccess文件来覆盖域由Matchi.com提供回到以及。

请考虑,除了隐藏郎参数,也有一些网页,这就需要通过一些GET参数了。他们并不需要被隐藏。他们只需要传递。因此,例如

www.domain.com/features.php?lang=de&a=1&b=2

应该从访问

www.domain.de/features.php?a=1&b=2

我的当前htaccess的重写规则已经涵盖了在结束时的.com / X /域由[L,QSA]的附加参数。但我不知道如何设置它覆盖了从域名由Matchi.com提供回到包括ocationally存在的GET参数的访问。

这应该是一个通用的解决方案。所以,我不应该进入的每一个我的PHP文件一条线,而是应该覆盖所有的PHP文件名,如已经存在的重写规则上面已经做了.COM域名。

谢谢。

php apache .htaccess mod-rewrite url-parameters
1个回答
0
投票

我想,这应该给您至少出发点:

Options -Indexes
RewriteEngine On

RewriteCond %{HTTP_HOST} ^www.example.de$[OR]
RewriteCond %{HTTP_HOST} ^example.de$
RewriteRule ^/?(.*)$ http://www.example.com/de/$1 [R=301,L,QSA]

RewriteCond %(REQUEST_FILENAME) !-f
RewriteCond %(REQUEST_FILENAME) !-d
RewriteRule ^/?(.*)/(.*).php /$2.php?lang=$1 [L,QSA]
© www.soinside.com 2019 - 2024. All rights reserved.