0

すべてのページをexample.comからwww.example.comに取得する方法を見つけましたが、見つけたコードは正反対のことを行うには機能しません。www.example.comからexample.comに移動する必要があります。

これが私が持っているコードです。誰かがそれを書き直して反対のことをするのを手伝ってもらえますか? 404または無限ループのいずれかを行う編集。

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

- - -編集 - - -

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

-----編集2-----

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

Options +MultiViews

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} ^/(.*?)/?$
RewriteCond %{DOCUMENT_ROOT}/%1.php -f
RewriteRule ^ /%1.php [L]

Options +MultiViewsあなたが私にくれたものOptions -MultiViewsで、いつも「見つかりませんでした。同様のファイルがあります」ページに移動したので、私は一緒に行きました。

4

1 に答える 1

0

試す:

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

編集:

mod_negotiation との競合を避けるために、上記のルールの後にこれを追加してみてください。

Options -MultiViews

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} ^/(.*?)/?$
RewriteCond %{DOCUMENT_ROOT}/%1.php -f
RewriteRule ^ /%1.php [L]
于 2012-12-14T23:54:35.200 に答える