3

これが私がやりたいことです:

  • すべてのダッシュ (-) をアンダースコア (_) に置き換えたいのですが、サブドメインのみです。
  • すべてのダッシュが置き換えられた後、書き換えられたサブドメインの名前を持つサブディレクトリにリダイレクトしたい

例: http://subdomain-with-dashes.rotarytest.de/a-directory/an-image.png 書き換え後は http://rotarytest.de/subdomain_with_dashes/a-directory/an-image.pngになります。

これが私が今持っているものです。コードのコメントを参照してください

RewriteEngine on

# replace dashes with underscores
# this works, but only for the last dash
RewriteCond %{HTTP_HOST} ^(.*)-(.*)$
RewriteRule ^(.*)$ http://%1_%2/$1 [L,R=301]


# if a subdomain is called, redirect to subdirectory
# this code works but only when i have one dash in my subdomain
RewriteCond %{HTTP_HOST} ^(.*)\.rotarytest\.de$
RewriteRule ^(.*)$ http://rotarytest.de/%1%{REQUEST_URI} [L,R=301]

ここで、stackoverflow または Web で見つけたほとんどすべてのソリューションを試しましたが、どれも正しく機能しませんでした。

誰かが私を助けることができますか?前もって感謝します。

4

1 に答える 1

0

ダッシュを削除するには、ブラウザが継続的にリダイレクトできるようにする必要があります。URIでダッシュをアンダースコアに置き換える必要がない場合は、最初の2つのルールは不要であり、ホスト名には適用されません。最初の2つのルールを次のように置き換えます。

RewriteCond %{HTTP_HOST} ^(.*)-(.*)$
RewriteRule ^(.*)$ http://%1_%2/$1 [L,R=301]
于 2013-03-15T22:09:06.637 に答える