.htaccess - 当结尾没有斜线时的子域重定向(我想要subdomain.domain.eu/en - > subdomain.domain.eu/en/)

时间:2017-03-09 18:12:19

标签: php apache .htaccess redirect mod-rewrite

我的.htaccess文件中有这段代码:

RewriteEngine On
RewriteCond %{HTTPS} !=on
RewriteRule ^.*$ https://%{SERVER_NAME}%{REQUEST_URI} [R,L]

RewriteCond %{HTTP_HOST} ^www\.subdomain\.domain\.eu [NC]
RewriteRule ^(.*)$ https://subdomain.domain.eu/$1 [L,R=301]

RewriteCond %{HTTP_HOST} ^subdomain\.domain\.eu$ [NC]
RewriteRule ^((?!subdomain/).*)$ /subdomain/$1 [L,NC]

当用户导航到subdomain时,会向用户显示文件夹subdomain.domain.eu的内容。它运作正常。

最近我在我的网站上添加了对不同语言的支持。 当说英语的人输入subdomain.domain.eu时,他们会被重定向到subdomain.domain.eu/en/。它运作正常。

然而,问题就出现了 - 当某人导航到subdomain.domain.eu/en(最后没有斜线)时,他们会被重定向到subdomain.domain.eu/en/subdomain/,我希望将它们重定向到{{1} }}。如何实现?

1 个答案:

答案 0 :(得分:0)

我不确定我是不是搞砸了其他东西,但加上这个(如arkascha建议的那样)有帮助:

wrap

@edit

是的,它没有按预期工作,但这是:

RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)([^/])$        /$1$2/ [L,R=301]