1

私のすべてのURLには次のスキーマがあります。

domain.de/LANGUAGE/CATEGORY/PAGE.html

このURLはこれを介して処理されます:

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([^/]*)/([^/]*)/([^/]*)\.html$ /?lang=$1&subid=$2&id=$3 [L,QSA]

だから私が欲しいのは次のリダイレクトです:

#Start page:
domain.de -> www.domain.de/de/abc/index.html
domain.de/LANG/ -> www.domain.de/LANG/abc/index.html
www.domain.de -> www.domain.de/de/abc/index.html
wwww.domain.de/LANG/ -> www.domain.de/LANG/abc/index.html

#In general:
all pages without www should be redirected to page with www 

#subdomain
subdomain.domain.de -> www.domain.de/de/abc/xy.html

私のスタート:

RewriteEngine On
# domain.de -> www.domain.de/de/abc/index.html
RewriteCond %{HTTP_HOST} ^(domain\.(de))$
RewriteRule .+ http://www.%1/%2/abc/index.html$0 [L,R=301]

# www.domain.de/de -> www.domain.de/de/abc/index.html
RewriteCond %{HTTP_HOST} ^www\.domain\.(de)$
RewriteRule ^%1/?$/abc index.html [L,R=301]

# subdomain.domain.de to http://www.domain.de/de/abc/xy.html
RewriteCond %{HTTP_HOST} ^subdomain\.(domain\.(de))$
RewriteRule .+ http://www.%1/%2/abc/xy.html [L,R=301] 

でも今はどうしたらいいのかわからない。あなたは私を助けることができます?

4

1 に答える 1

0

次のコードを使用できます。

RewriteEngine On
RewriteBase /

# domain.de -> www.domain.de/de/abc/index.html
RewriteCond %{HTTP_HOST} ^domain\.de$ [NC]
RRewriteRule ^ http://www.%{HTTP_HOST}%{REQUEST_URI} [R=301,L]

# subdomain.domain.de to http://www.domain.de/de/abc/xy.html
RewriteCond %{HTTP_HOST} ^subdomain\.(domain\.de)$ [NC]
RewriteRule ^$ http://www.%1/de/abc/xy.html [L,R=301]

# www.domain.de/de -> www.domain.de/de/abc/index.html
RewriteCond %{HTTP_HOST} ^www\.domain\.de$ [NC]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{ENV:REDIRECT_STATUS} !200
RewriteRule ^(de|nl|en)/?$ /$1/de/abc/index.html [L]
于 2013-03-25T11:03:21.440 に答える