4

私はCakephp2.0を使用しており、私のWebサイトのドメイン名はwww.sample.comです。(wwwなしで)sample.comにアクセスしようとすると、www.sample.comにアクセスできます。しかし、私の問題は、私のドメインが多くのページで構成されていることです。

> http://www.sample.com/users/login
> http://www.sample.com/users/add

http://sample.com/users/loginのように上記のURLにアクセスすると、次のURLにリダイレクトされます。

>  http://www.sample.com/index.php?url=users/login

ただし、にリダイレクトする必要があります

   http://www.sample.com/users/login

リダイレクトするために、次のコード.htaccessファイル(アプリフォルダーの前)を既に作成しました

Rewritecond %{http_host} ^sample.com [NC]
Rewriterule ^(.*)$ http://www.sample.com/$1 [R=301,NC]

webrootフォルダー内に次のコードを含む1つの.htaccesファイルがありますこれが問題だと思います

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ index.php?/$1 [QSA,L]

4

2 に答える 2

3

常にwwwを削除しようとしていますか、それとも常にwwwを維持しようとしていますか?これはそれを追加します:

## Add www
RewriteCond %{HTTP_HOST} !^www\.
RewriteCond %{HTTPS}s ^on(s)|
RewriteRule ^ http%1://www.%{HTTP_HOST}%{REQUEST_URI} [L,R=301]

## CakePHP
RewriteRule ^$ app/webroot/ [L]
RewriteRule (.*) app/webroot/$1 [L]
于 2012-11-08T10:46:28.580 に答える
0

次のルールを書いてみてください。

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

アプリのフォルダ.htaccessではなく、app / webroot/.htaccessファイルにあります。それは私にとって完璧に機能します。

于 2012-11-08T10:46:52.550 に答える