2016-07-01 4 views
1

私はubuntu 14.04でApacheを実行しており、301のリダイレクトを設定しようとしています。リダイレクトは機能していますが、期待通りには動作しません。ここでは、私が持っているものです。サブディレクトリから特定のhtmlファイルにリダイレクトする

#REDIRECTS 
Options +FollowSymLinks 
RewriteEngine On 


# REMOVES INDEX.PHP 
RewriteCond $1 !\.(gif|jpe?g|png)$ [NC] 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^(.*)$ /index.php/$1 [L] 

# REDIRECT SPECIFIC PAGES 
Redirect 301 /main http://mikeheavers.com 
Redirect 301 /main/ http://mikeheavers.com 
Redirect 301 /main/code http://mikeheavers.com/tutorials.html 
Redirect 301 /main/code/ http://mikeheavers.com/tutorials.html 

最初の2つのredirect 301の仕事を、残りは、そのよう/main/codeとして、http://mikeheavers.com/codeにリダイレクトし、http://mikeheavers.com/tutorials.htmlを注意してみてください。私は間違って何をしていますか?


更新:Redirectディレクティブを持ってmod_aliasmod_rewriteルールを混在させないでください、私は含まれない最後のスラッシュ

答えて

0

を含む両方のURLをリダイレクトできるようにする必要があることに注意してください。

#REDIRECTS 
Options +FollowSymLinks 
RewriteEngine On 

# REDIRECT SPECIFIC PAGES 
RewriteRule ^main/?$ http://mikeheavers.com [L,NC,R=301] 
RewriteRule ^main/code/?$ http://mikeheavers.com/tutorials.html [L,NC,R=301] 

# REMOVES INDEX.PHP 
RewriteCond $1 !\.(gif|jpe?g|png)$ [NC] 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^(.*)$ /index.php/$1 [L] 

この変更をテストする前に、必ずブラウザのキャッシュを消去してください。

+0

ありがとうございます。後にスラッシュの有無にかかわらずURLをリダイレクトできるようにするにはどうすればよいですか?あなたの例では、後続のスラッシュのみを含めることができます。 – mheavers

関連する問題