6

私は最近、SOの助けを借りて、htaccessリダイレクトの問題を解決しました。

書き換えルールでサブドメインを再利用する

その結果、誰かが入ると

whatever.example.com/anypage

アドレスバーで、htaccessは自動的ににリダイレクトします

whatever.example.com/somepath/whatever/anypage

私がやりたいのはwhatever.example.com/anypage、コンテンツが表示された状態でアドレスバーに表示する方法を見つけることwhatever.example.com/somepath/whatever/anypageです。

先に述べた投稿で、JonLinは次のことを明確に述べています。

リダイレクトは常にブラウザのURLアドレスバーの内容を変更します

ただし、アドレスバーに表示されるURLの書き換えが非常に頻繁に発生するケースをいくつか知っています。たとえば、次のようになります。

example.com/article-1-15

しかし実際にはの内容を示しています

example.com/somepath/somepage.php?article=1&otherparam=15

これは私の場合にどのように当てはまりますか?私は本当に小さなURLが欲しいのですが、何かを逃したようです。

4

1 に答える 1

2

あなたはこのようなことを試みるかもしれません:

RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_URI}  ^/([^/]+)$
RewriteRule .*  http://whatever.example.com/somepath/whatever/%1 [L]

マップします:

http://whatever.example.com/anypage

次のリソースへ:

http://whatever.example.com/somepath/whatever/anypage

ブラウザのアドレスバーに常に表示されます:

http://whatever.example.com/anypage

更新しました

動的で置換URIが同じである場合は、別のオプションがあります。

RewriteEngine On
RewriteBase /
RewriteCond %{HTTP_HOST}  ([^/]+)\.example\.com.*
RewriteCond %{REQUEST_URI}  ^/([^/]+)$
RewriteRule .*  http://%1.example.com/somepath/%1/%2 [L]

これは、置換パスの「何でも」が同じである限り機能します。そうでない場合は、最後の「何でも」を次のようにハードコーディングする必要があります。

RewriteRule .*  http://%1.example.com/somepath/whatever/%2 [L]

着信URLにはそれがないため、他の方法はありません。

于 2012-12-28T17:02:22.140 に答える