は(Apacheを使用していると仮定して)あなたの.htaccessファイルにこれを追加します。
意志
RewriteEngine On
RewriteCond %{HTTP_HOST} !^www\.
RewriteRule ^(.*)$ http://www.%{HTTP_HOST}/$1 [R=301,L]
常にwwwを追加します。ユーザーが入力しなくてもそれはあなたの問題を解決するはずです。これを行うと、私は私のEEのインストールのためのコードブロックを使用したURLからindex.phpをを削除するには
(CIを使用する)
<IfModule mod_rewrite.c>
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]
# Redirects index.php when user adds them to a URL
RewriteCond %{THE_REQUEST} ^GET.*index\.php [NC]
RewriteCond %{THE_REQUEST} !/system/.*
RewriteRule (.*?)index\.php/*(.*) /$1$2 [R=301,L]
# Appends www when absent
RewriteCond %{http_host} ^mysite.com [NC,OR]
RewriteRule ^(.*)$ http://www.mysite.com/$1 [R=301,L]
</IfModule>
最初のブロックからのindex.phpを削除するためにあなたの標準的なEEベースのリライトですすべてのあなたのURL。コードの2番目のブロックは、あなたが検索エンジンで重複したURLを与えることから(つまり、SEOを傷つけることから)、ユーザーによってindex.phpが追加されたURLを保持する素敵な追加です。代わりに、適切なURLに適切に転送するか、適切な場合は404を返します。もちろん、コードの最後のブロックはwwwを追加します(または削除することもできます)。
私は実際にこれをすでに行いましたが、それ以外の方法で行いました。常にwwwを削除するのと同じです。どちらのアプローチにも賛否両論はありますか?いつもvsを取り除くのと同じように、常にwwwの前に? – vgaldikas
あなたが一貫している限り、実際はそうではありません。短く、他の人がwwwを好む人もいるので、削除する方が好きです。そのより一般的なので。 SEOは重要ではありません。あなたの問題を解決しましたか? –
そうでした!ありがとう!小さなものを除いて...私はmod_rewriteのもう一つのビットがあります.1つは、CIのindex.phpを取り除く...私がサイトに行ったときに、その1つは呼び出されず、index.phpがURLに表示されます。実際には大したことではありませんが、これらの2つのルールがどのように一緒に暮らすことができるかを知っていいですか? – vgaldikas