htaccessをインクルードまたは削除するための変更

誰かが、www。文字列を追加(または削除)するためのルールでindex.phpを削除するための新しい.htaccessルールを組み合わせる運があったのですか?以前は、次のものを使用していました。

    RewriteEngine On

    RewriteCond %{HTTP_HOST} ^example\.com$
    RewriteRule (.*) http://www.example.com/$1 [L,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]

しかし、新しい提案コード:

    RewriteEngine On
    RewriteBase /

    # Removes index.php from ExpressionEngine URLs
    RewriteCond %{THE_REQUEST} ^GET.*index\.php [NC]
    RewriteCond %{REQUEST_URI} !/system/.* [NC]
    RewriteRule (.*?)index\.php/*(.*) /$1$2 [R=301,NE,L]

    # Directs all EE web requests through the site index file
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule ^(.*)$ /index.php/$1 [L]

... wwwルールセットと組み合わされたときに私のためにあらゆる種類のエラーを投げています:

    RewriteCond %{HTTP_HOST} ^example\.com$
    RewriteRule (.*) http://www.example.com/$1 [L,R=301]
1

1 答え

私はこのコードを使用しています:

# ----------------------------------------------------------------------

# Option 1:
# Rewrite "www.domain.com -> domain.com" 


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


# 

I ever used the Ellislab suggested code to remove index.php, it doesn't work fine on the Apache server where Expression Engine is installed. Using the addon htaccess Maker it's working fine, nice performance: http://devot-ee.com/add-ons/htaccess-maker

1
追加された
ありがとうStéphane。それが価値あるものであれば、上記のコードブロックは正常に機能します。新しい推奨コードブロックを使用して構築することを望んでいたので、index.php( ellislab.com/blog/entry/fully-removing-index.php-from-urls )‌
追加された 著者 Simon Gillbee,
この.htaccessはサーバールート上にあり、index.phpを削除するために自分のサイトルートにあります。
追加された 著者 Jonas Pegerfalk,
問題は各Apacheサーバーが異なるパラメータを持つ可能性があるため、Ellislabから示された.htaccessが自分のサイトがホストされている場所で動作していないことです。私は多くの構成を試してみましたが、私の場合はアドオンのhtaccess-makerだけがうまく動作します。ニースあなたの典型的なコードブロックはまだうまく動作します:)
追加された 著者 Jonas Pegerfalk,