0

このURLからリダイレクトするために自分のサイトが必要です:

mysite.com/old/dir/param1/param2/...

mysite.com/dir/param1/param2/...

パラメータを保持する必要があります。URLの「古い」を削除するだけです。

このルールを.htaccessに追加するにはどうすればよいですか?

ありがとう!!!

これが私の.htaccessです:

<IfModule mod_rewrite.c>
    RewriteEngine On

RewriteBase /
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule ^(.*)$ index.php?/$1 [QSA,L]

    RewriteRule ^old/dir/(.*) mysite.com/dir/$1 [R=301,L]
</IfModule>
4

2 に答える 2

0

そのための正しいルールは

他のすべてのルールの前に配置する必要がありました。したがって、私の .htaccess は次のようになります。

<IfModule mod_rewrite.c>
    RewriteEngine On

    RewriteRule ^old/dir/(.*) /dir/$1 [R=301,L]


    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule ^(.*)$ index.php?/$1 [QSA,L]
</IfModule>

とにかくありがとう!:)

于 2012-10-11T17:29:55.020 に答える
0

このように書けばよいのです。

Rediret 301 mysite.com/old/dir/param1/param2/(.*) mysite.com/dir/param1/param2/$1

のディレクトリ全体を にリダイレクトする予定がある場合は、次のold/dirことdir/を試してください。

Redirect 301 mysite.com/old/dir/(.*) mysite.com/dir/$1

次に試すことができるオプションは、URL の書き換えです。

Rewrite Engine をオンに設定し、Rewrite Base を設定したと仮定して、次の行を追加します。

RewriteRule ^old/dir/(.*) mysite.com/dir/$1 [R=301,L]
于 2012-10-11T16:48:02.470 に答える