2016-10-05 6 views
0

RewriteRuleを使う私はサブディレクトリのすべてのURLを絶対パスとして別のサブディレクトリにリダイレクトしようとしています。例:
www.domain.com/store/search?search=some_termサブディレクトリ内の何かを絶対ディレクトリパスにリダイレクト

など

すべてが

WWWに行く必要がwww.domain.com/store/search

.domain.com/newdirが/

は、残念ながら私は見ていた結果では、そのようなようなものです:

www.domain.com/store/newdi r/
www.domain.com/store/newdir/?search=some_term

などです。私は現在、このコマンドを使用しています:

RewriteEngine のRewriteRule検索(。*)
にnewdirが/ [R = 301、NC、L]私は/店舗/検索で何かをリダイレクトするにはどうすればよい

に単に/ newdir、単語 "検索"の後に来るものをトリミングする?ありがとう。 .htaccessファイルがルートディレクトリにある場合は

答えて

0

あなたは

RewriteEngine on 
RewriteRule ^store/search(.*)?$ ./newdir/$1 [R=301,NC,L] 

それとも

.htaccessファイルは、あなたがこれを行うことができます「ストア」ディレクトリにある場合...このような何かを行うことができます

RewriteEngine on 
RewriteRule ^search(.*)?$ http://www.domain.com/newdir/$1 [R=301,NC,L] 

これは、ディレクトリにリダイレクトしたい場合は、クエリ文字列を保持することです$ 1を削除します。

+0

ありがとうsdexp。私は実際に両方のディレクトリに.htaccessを持っています。ルートと "store"です。私は両方にあなたの提案を残し、残念ながら$ 1を削除してもクエリを含む結果が得られます: http://www.domain.com/store/newdir/?search=some_term 多分私はエラーを起こしました。私が追加したルールは以下の通りです:
** Store Dir .htaccess:**
RewriteRule^search(。*)?$ http://www.domain.com/newdir/ [R = 301、NC、L ] ** Root Dir .htaccess:** RewriteRule^store/search(。*)?$ ./newdir/ [R = 301、NC、L] –

+0

これを 'RewriteRule^store/search(* )?$ http:// www \ .domain \ .com/newdir/[NC、L、R = 301] '。また、ルールを設定してブラウザのキャッシュに残しておくと、キャッシュをクリアしたり、ブラウザを再起動したり、別のブラウザを使ってリダイレクトがあるかどうかを再確認したりすることもできますキャッシュかどうか。 – sdexp

+0

2つのディレクトリに重複ルールがありません。 1つを選択し、他の.htaccessからルールを削除してください – sdexp

関連する問題