0

yiiのURLを書き直そうとしていますが、うまくいきません。私は何時間もサイトを調べて、毎回同じ答えを思いつきましたが、それは私にはうまくいきません:

http://www.yiiframework.com/doc/guide/1.1/en/topics.url#user-friendly-urls

URLを基本パスに解決したい例:

/index.php/site/index to /

/index.php/adsおよび/index.php/ads/から/ads

/ ads / details?ad=9から/ads/ 9

問題は、.htaccessが効果を発揮しないことのようです。

使ってます:

ライオンとウェブディレクトリを備えたMacのmampproは、ウェブサーバーのルートとは異なります。コンソールからAllowOverideを設定しました。

.htaccessはメインのindex.phpと同じフォルダーにありますが、エラーを作成しても登録されません。

htaccessファイルを使用して他のyii以外のWebディレクトリに問題はありませんでした

RewriteEngine On 
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^.*$ /index.php

//main.php

  'urlManager'=>array(
        'urlFormat'=>'path',
                    'showScriptName'=>false,

        'rules'=>array(

                        '<controller:\w+>/<id:\d+>'=>'<controller>/view',
            '<controller:\w+>/<action:\w+>/<id:\d+>'=>'<controller>/<action>',
            '<controller:\w+>/<action:\w+>'=>'<controller>/<action>',
        ),
    ),
4

1 に答える 1

2

Yiiアプリケーションもサブフォルダーにあるプロジェクトがあります。

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

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

次に、main.phpで、次の行を「rules」配列に追加する必要があります。

'' => 'site/index', // This is for the home page

広告はコントローラーの名前ですか?つまり、コントローラーフォルダーにAdsController.phpという名前のファイルがありますか?その場合、デフォルトで機能します。

index.phpに直接アクセスしている理由に興味がありますか?Yiiアプリフォルダーを直接指すようにローカルホストを設定できるはずです。たとえば、私のマシンでhttp:// mytestapp /を作成しました。これは、htdocs内のアプリのフォルダーを指します。

Macを使用しているため、etc/hostsファイルも編集する必要があります...

次のような行を追加しました:127.0.0.1 mytestapp

お役に立てば幸いです...

于 2012-08-30T20:05:05.420 に答える