0

ルート Web ディレクトリで実行されている CodeIgniter インストールを /dev というサブディレクトリにコピーしました... config/config.php ファイルを編集して変更を反映させたので、次のようになりました。

$config['base_url']  = 'http://mysite.com/dev';
$config['sbase_url']     = 'https://mysite.com/dev';
$config['default_email'] = 'noreply@mysite.com';
$config['site_url']  = 'http://mysite.com/dev';

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

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

サイト上のリンクにカーソルを合わせると、それらは正しいです。たとえば、お問い合わせページのリンクは www.mysite.com/dev/contact と表示されますが、いずれかのリンクをクリックすると 404 エラーが発生します...

私が見逃している一般的なものはありますか?

4

1 に答える 1

3

RewriteRuleの index.php の前にFollowSymlinksa を有効にして追加します。./

<IfModule mod_rewrite.c>
  Options +FollowSymlinks
  RewriteEngine On

  # block hidden directories
  RewriteRule "(^|/)\." - [F]

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

また、リンクを構築するときに空白のままにして、代わりに url ヘルパーを$config['base_url'] = '';使用しbase_url()ます。これにより、環境の移動が容易になります (例: subdir'd dev & root-level production )。

...そしてもちろん、ModRewrite が Apache 設定で有効になっていることを確認してください。

于 2012-07-08T02:58:47.550 に答える