2016-12-06 7 views
0

だから私は持っている「良い」のURL:htaccessファイル:素敵なSEOフレンドリーURLの後ろに隠すPHPファイルは

RewriteRule ^(.*)/$ page.php?data=$1 [L] 

問題はpage.phpがそうsite.com/page.php?data=xxxは、私がしたいsite.com/xxx/

の重複コンテンツが表示されますアクセス可能であることですそれを防ぐが、もし私がRedirectまたはRewriteRuleでも良いURLの前にしても、RewriteRuleはそれが影響を受け、/いいURLの後ろでもファイルにアクセスできない。

どうすればよいですか?

page.phpはまれなファイル名に変更することができます。発見されて公開された場合は、html canonical urlsを追加しますが、正しく処理したいと思います。

+0

は – Grey

答えて

1

あなたの最初のRewriteCond前にこれを追加します。

# external redirect from actual URL to pretty one 
RewriteCond %{THE_REQUEST} \s/+page\.php\?data=([^\s&]+) [NC] 
RewriteRule^/%1/? [R=301,L,NE] 
+0

は、まあ、私は素敵なURLにこれをリダイレクトしたくないlaravelのように、PHPのルーティングシステム、または一般的にはPHPのフレームワークを検討してみてください、私がしたかったですこれらのファイルを "隠す"と、私はいくつかの素敵なURLを持っています。それは不要な大きなファイルになります。 。。 'するRewriteCond%{THE_REQUEST}^* \ phpの[NC] のRewriteRule^404.html [R = 302、L]' しかし、私は非常に少しを持っている: はビットを戦った後、私はこの作業を得ました問題は、すべてのGETデータを保持していますか?あまり問題はありませんが、どうすればきれいな404.hmlのURLに行くことができますか? – Vixxs

+0

私はサブフォルダで作業していたので問題があり、どこに追加するか分からなかった。 'RewriteCond%{THE_REQUEST} \ s/page \ .php [NC] RewriteRule^404.html? [R = 302、L] ' – Vixxs

+0

@Vixxs 404にリダイレクトしたり、内部的に書き換えたり、404ファイルのステータスヘッダを設定したりしないでください。 – Walf

関連する問題