0

これは私の .htaccess ファイルです:

     RewriteEngine On

     RewriteBase /mydomainname.com/
     RewriteCond $1 !^(index\.php|images|assets|robots\.txt) 
     RewriteRule ^(.*)$ /index.php/$1 [L]

このコードは、一方のホスティングでは機能していますが、もう一方のホスティングでは機能していません。ホスティングの両方でこのコードを実行してみました

1)1つのホスティングで、URLにindex.phpを追加しなくてもコードが機能します。

 www.mydomainname.com/contrlerName/functionname

2) 他のドメインでは、次のように URL に index.php を追加する必要があります。

 www.mydomainname.com/index.php/contrlerName/functionname

何が問題なのですか?

前もって感謝します!

4

3 に答える 3

1

AllowOverride All|None|directive-type [directive-type]

allow overrideディレクティブが、.htaccess機能していない2番目のホスティングでファイルを有効にすることを確認します。

http://httpd.apache.org/docs/2.2/mod/core.html#allowoverride

于 2013-03-06T15:51:30.597 に答える
1

RewriteBase 行を削除します。これはおそらく古いもので必要でしたが、新しいものではありません。それは非標準です。実際には必要ではありません。おそらく、彼らはクレイジーな仮想ホスティング設定をしていたのでしょう。

また、新しいホスティングである可能性があり、.htaccess ファイルを許可しないため、単に無視されます。

于 2013-03-06T15:49:07.437 に答える
0

2 番目のホスティングで mod_rewrite がどのように機能するかを確認してください。ホスティング サポートに問い合わせてください。ホスティングが書き換えをサポートしていないようなものがあります。

于 2013-03-06T15:56:51.527 に答える