3

htaccess書き換えルールを取得して、URLからを削除し、リクエストをwww以外のバージョンにindex.phpリダイレクトしようとしています。www.

これは私のhtaccessで、index.phpを削除すると正常に機能します。

RewriteEngine on
RewriteCond $1 !^(index\.php|resources|robots\.txt)
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/$1 [L,QSA] 

そして、私はその部品を取り除く方法について別の質問に出くわしましたwww

RewriteEngine On
RewriteCond %{HTTPS} !=on
RewriteCond %{HTTP_HOST} ^www\.(.+)$ [NC]
RewriteRule ^(.*)$ http://%1/$1 [R=301,L]

しかし、私は彼らを一緒にうまくプレイさせることができないようです!どんなアドバイス/提案も大歓迎です!

4

2 に答える 2

6
RewriteEngine On
RewriteCond %{HTTPS} !=on
RewriteCond %{HTTP_HOST} ^www\.(.+)$ [NC]
RewriteRule ^(.*)$ http://%1/$1 [R=301,L]

RewriteCond $1 !^(index\.php|resources|robots\.txt)
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/$1 [L,QSA]

RewriteEngine On書き換えを「開始」します。ペアRewriteCondで動作します。RewriteRuleここでは、最初にユーザーをwww以外のバージョンに送信し、URLをクリーンアップします。

于 2012-08-20T00:18:53.747 に答える
2

最初に「www以外の」書き換えルールが最初に来ることを確認する必要があり、次にすべてのリクエストをCodeIgniterブートストラップファイルにリダイレクトするルールが来るようにします。次のコードはHTTPリライトのみを尊重することに注意してください。HTTPSも必要な場合は、いくつかの変更が必要です。

RewriteEngine on
# Sending all www requests to the non-www version.
RewriteCond %{HTTP_HOST} ^www.domain.com [NC]
RewriteRule ^(.*)$ http://domain.com/$1 [L,R=301]

# Now the CodeIgniter part
RewriteCond $1 !^(index\.php|resources|robots\.txt)
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/$1 [L,QSA]
于 2012-08-20T00:23:12.353 に答える