0

リクエストをリダイレクトする必要があります

www.mysite.com/?querystring=data 

www.mysite.com/dir/phpfile.php/?querystring=data 

request_uri が空の URL のみを翻訳する必要があることを意味します (たとえば、

www.mysite.com/css/style.css 

は翻訳しないでください)、空のクエリ文字列ではありません (たとえば、メイン ページ

www.mysite.com/ 

翻訳しないでください)。

私はこのコードを書きました

RewriteCond %{HTTP_HOST} ^www.mysite.com$ [NC]
RewriteCond %{REQUEST_URI} ^/$ 
RewriteRule ^/?(.*)$ www.mysite.com/$1 [QSA]

しかし、うまくいきません。なにか提案を?

4

2 に答える 2

0

あなたが持っているルールには、プロトコルなしでドメイン名が含まれています。これは、mod_rewrite への URI またはファイル パス名のようになります。さらに、一致$1のグループ化を後方参照するため、何も書き換えていません条件では、URI は. おそらく次のようなものが必要です。(.*)/

RewriteCond %{HTTP_HOST} ^www.mysite.com$ [NC]
RewriteRule ^/?$ /dir/phpfile.php/ [L,R]

クエリ文字列は自動的に末尾に追加されます。Rブラウザを外部にリダイレクトしたくない場合 (ロケーション バーの URL を変更する場合) を削除するかR=301、永続的なリダイレクトが必要な場合は に置き換えます。

于 2013-06-25T09:27:58.453 に答える
0
Options +FollowSymLinks -MultiViews
# Turn mod_rewrite on
RewriteEngine On
RewriteBase /

RewriteCond %{QUERY_STRING} ^(.+)$ [NC]
RewriteRule ^$ /dir/phpfile.php/ [L,QSA,R=302]

正常に動作していることを確認したら、 に置き換えR=302ますR=301R=301mod_rewrite ルールのテスト中は (Permanent Redirect) を使用しないでください。

于 2013-06-25T12:29:41.067 に答える