1

.htaccess ファイルのスクリプトを作成できません。

次の書き換えが必要です。

  • www.domain.tld -> domain.tld(問題なし)
  • admin.domain.tld/(.*) -> domain.tld/?show=admin$1
  • (everyothersubdomain).domain.tld -> domain.tld/?show=everyothersubdomain (そのためにワイルドカードサブドメインを作成しました)

これ上手い人いる?エラー 500 または get-parameters のない単純な indexpage (index.php は単に print_r($_GET)) で何度か試行した後に失敗しました。

ありがとう

4

2 に答える 2

1

私は自分でテストしていませんが、動作するはずです。

RewriteCond  %{QUERY_STRING}  show=(.*)
RewriteRule  ^(index\.php|)$   http://%1.domain.tld  [R=301,L]
RewriteRule ^(admin|special1|special2)\.php    http://$1.domain.tld [R=301,L]
RewriteCond %{HTTP_HOST} ^(admin|special1|special2)\.domain\.tld$  [NC]
RewriteRule (.*) http://domain.tld/%1.php [L,NC,QSA]

RewriteCond %{HTTP_HOST}  www\.domain\.tld  [NC]
RewriteRule (.*)  http://domain.tld/$1  [L,R=301,QSA]

RewriteCond  %{HTTP_HOST}  ^(.*)\.domain\.tld$
RewriteRule (.*)  http://domain.tld/?show=%1[L,NC,QSA]

ユーザーhttp://domain.tld/admin.phpがブラウザで入力すると、にリダイレクトされhttp://admin.domain.tldます。しかし、彼が に入るhttp://admin.domain.tldと、外部にリダイレクトされません。これがあなたが望むものかどうか私に知らせてください。

于 2012-03-05T04:26:54.840 に答える
0

@Deathのおかげで、私は自分でこの解決策を思いつきました。

RewriteCond %{HTTP_HOST} ^(admin|special1|special2)\.domain\.tld$  [NC]
RewriteRule (.*) index.php?mode=%1 [L,NC,QSA]

RewriteCond %{HTTP_HOST}  www\.domain\.tld  [NC]
RewriteRule (.*)  http://domain.tld/$1  [L,R=301,QSA]

RewriteCond  %{HTTP_HOST}  ^(.*)\.domain\.tld$
RewriteRule (.*)  index.php?show=%1 [L,NC,QSA]

index.phpを使用していくつかのテストを実行しました。これは次のとおりです。

<?php print_r($_GET); ?>

そして、すべてのテスト実行は完璧に機能しました!

于 2012-03-06T04:40:40.860 に答える