2016-09-26 13 views
1

私はその場所全体を検索してきましたが、動作させることはできません。htaccessカスタムリダイレクトが機能しません

このコードは完璧に実行されている:

RewriteEngine On 
RewriteCond %{SCRIPT_FILENAME} !-d 
RewriteCond %{SCRIPT_FILENAME} !-f 

RewriteRule ^/?artists/[\w-]+/([\w-]+)/([\w-]+)/?$ /dir1/artist.php?artist_id=$1&page_id=$1 [L,QSA,NC] 
RewriteRule ^/?tour/[\w-]+/([\w-]+)/?$ /dir2/index.php?artist_id=$1 [L,QSA,NC] 
RewriteRule ^/?video/[\w-]+/([\w-]+)/?$ /dir3/index.php?artist_id=$1 [L,QSA,NC] 
RewriteRule ^/?news/[\w-]+/([\w-]+)/?$ /dir4/article.php?artist_id=$1 [L,QSA,NC] 

をしかし、この後、私は以下これを試して、そして、すべてのサーバからの応答がありません。それはちょうど私のカスタムは、作業

RedirectMatch 301 ^/old_dir//old_file.html /artists/subdir/21/biography/ 
RewriteRule /old_dir//old_file.html /artists/subdir/21/biography/ [L,R=301] 

試さず誰でも最初RewriteRules後にリダイレクトするカスタムを設定する方法を知っている試みをリダイレクトする古いページ(まだサーバー上に)

をロードしますか?

ps。いなくてもanubhavaの答え作品(htaccess Redirects Not Working Right

答えて

1

あなたの正規表現パターン@301ルールの問題である:

RewriteEngine On 

RewriteRule ^old_dir/old_file\.html$ /artists/subdir/21/biography/ [L,R=301,NC] 

RewriteCond %{SCRIPT_FILENAME} -d [OR] 
RewriteCond %{SCRIPT_FILENAME} -f 
RewriteRule^- [L] 

RewriteRule ^/?artists/[\w-]+/([\w-]+)/([\w-]+)/?$ /dir1/artist.php?artist_id=$1&page_id=$1 [L,QSA,NC] 
RewriteRule ^/?tour/[\w-]+/([\w-]+)/?$ /dir2/index.php?artist_id=$1 [L,QSA,NC] 
RewriteRule ^/?video/[\w-]+/([\w-]+)/?$ /dir3/index.php?artist_id=$1 [L,QSA,NC] 
RewriteRule ^/?news/[\w-]+/([\w-]+)/?$ /dir4/article.php?artist_id=$1 [L,QSA,NC] 

ところで、私はリンクの答えでこの問題のない関係を見ていない(その答えはwwwを追加するためのものであり、 https

+1

:)私の答えはあなたのために今回の作品ホープしかし、あなたはまだ天才です!これを解決してくれてありがとう!そして、他の質問の権利を読んでいないのは残念です。これについてはまったく文盲ではない。 – KJS