2017-03-09 41 views
1

我在.htaccess文件中有這樣的代碼:的.htaccess - 子域重定向時,有結尾沒有斜槓(我想subdomain.domain.eu/en - > subdomain.domain.eu/en/)

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.domain.eu時,該事件向用戶顯示文件夾subdomain的內容。它工作正常。

最近我加入了對我的網站不同語言的支持。 當講英語的人輸入subdomain.domain.eu時,他們被重定向到subdomain.domain.eu/en/。它工作正常。

不過,來這裏的問題 - 當有人瀏覽到subdomain.domain.eu/en(結尾沒有斜槓)他們重定向到subdomain.domain.eu/en/subdomain/,我希望他們被重定向到subdomain.domain.eu/en/。如何實現這一目標?

+1

爲上面的測試添加一個單獨的重定向規則,該規則僅測試缺少的尾部斜線。 – arkascha

回答

0

我不知道如果我沒有亂了別的東西,但是這增加(如arkascha建議)幫助:

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

@edit

呀,它沒有按預期工作,但是這是:

RewriteCond %{REQUEST_URI} !\.[a-z0-9]+$ [NC] 
RewriteRule ^(.*)([^/])$ https://%{HTTP_HOST}/$1$2/ [L,R=301] 
相關問題