2016-09-20 8 views
0

これは私をイライラさせています。私は同じ問題を見つけることができません。誰かがうんざりしていて、存在しないサブフォルダへのGoogleのリンクがたくさんある。だから私はそれを整理するためにhtaccessの301リダイレクトをしようとしています。htaccessサブフォルダをルートにリダイレクト

問題は、リダイレクトが複数のフォルダを深く操作するように見えないことです。

例。 http://example.com/subfolder/someOtherFolderhttp://example.com/someOtherFolderにリダイレクトされます。

しかしhttp://example.com/subfolder/someOtherFolder/yetAnother同じページに滞在し、404

を返します。これは、上記の結果を返す私の全体の.htaccessの最後のバリエーションで、私が試したものは、上記以外のものを返されていません。

<IfModule mod_rewrite.c> 
RewriteEngine on 
RewriteBase/
RewriteRule ^sitefiles/(.*)/$ /$1 [R=301] 
RewriteRule ^index\.php$ - [L] 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule . /index.php 
</IfModule> 

ヘルプ? (私は> .htaccessを嫌い<。)

答えて

0

で試してみてください:

RewriteRule ^sitefiles/(.*/?)$ /$1 [NC,R=301,L] 
+0

私が試したバリエーションの1つであることが比較的確かであることを確認したところ、同じことをやってみました。しかし、試していただきありがとうございます。 –

+0

キャッシュをクリアして他のブラウザで試しましたか? – Croises

+0

Yessir、他のブラウザ、シークレットモード、さらに別のコンピュータ –

0

問題は、このルールである:

RewriteRule ^sitefiles/(.*)/$ /$1 [R=301] 

この規則必要要求されたURI

上の最後のスラッシュ

代わりに

RewriteRule ^sitefiles/(.*) /$1 [R=301] 

単純なリダイレクトを行うリダイレクト指示があることに注意してください。あなたのケースでは:

FallbackResource /index.php 

したがって、最終的に推奨(ベストプラクティス)の構成は次のようになります:最後に

Redirect /sitefiles/

、その書き換えブロック全体を置き換えることができることに注意して

Redirect /sitefiles/
FallbackResource /index.php 

リライトをまったく使用しないでください。

関連する問題