[英].htaccess redirect issue with language modifier and different backend redirect
以下是一些我想做的例子:
www.example.de --> https://www.example.de/de/index
http://www.example.de -->https://www.example.de/de/index
https://www.example.de -->https://www.example.de/de/index
我正在使用以下規則進行操作:
RewriteEngine on
RewriteBase /
RewriteCond %{REQUEST_FILENAME} -f [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^ - [L]
RewriteCond %{SERVER_PORT} !^443$
RewriteRule (.*) https://%{HTTP_HOST}/de/index [L]
RewriteCond %{HTTP_HOST} !^www\.example\.de
RewriteRule (.*) http://www.example.de/de/index [R=301,L]
RewriteRule ^([^/]+)/([^/]+)/?$ index.php?lang=$1&page=$2 [L,QSA]
但是,我被這些條件所困:
(http(s)://)www.example.de/ANYSTRING --> https://www.example.de/de/index
(http(s)://)www.example.de/(anything not de or en)/ANYSTRING --> https://www.example.de/de/index
我也有一個看起來像這樣的后端: https : //www.example.de/backend/manage-stuff.php
這還應該包括語言修飾符,無法弄清楚應該怎么做。 任何提示高度贊賞。
//編輯
一些更多的例子來說明:
https://www.example.de/anything (not backend) --> https://www.example.de/de/index
https://www.example.de/en/anything --> https://www.example.de/en/index
https://www.example.de/de/anything --> https://www.example.de/de/index
https://www.example.de/backend --> https://www.example.de/de/backend
https://www.example.de/anything/backend --> https://www.example.de/de/backend
像這樣https://www.example.de/inc/template/temp3/js/jsfile.js這樣加載JS / CSS文件,mod_rewrite可能不會破壞它。
您可以使用:
RewriteEngine on
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{HTTPS} off [OR]
RewriteCond %{THE_REQUEST} !/index [NC]
RewriteRule ^(en|de) https://www.example.de/$1/index [R=301,L]
RewriteRule (?:^|/)(backend)(?:/|$) https://www.example.de/de/$1 [R=301,L,NC]
RewriteRule ^(?!backend|en|de). https://www.example.de/de/index [R=301,L,NC]
RewriteCond %{REQUEST_FILENAME} -f [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^ - [L]
RewriteRule ^([^/]+)/([^/]+)/?$ index.php?lang=$1&page=$2 [L,QSA]
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.