1

最近、ローカル マシンでの開発作業用に .dev TLD をセットアップしました。しかし、私の開発では常に localhost/example を使用してきました。私は "http://my.ip/example" を使用してさまざまなマシンでの動作を表示およびテストしているため、引き続き正常に動作するようにしたいと考えています。

今、私は次の問題に遭遇しました:

example.dev は、正常に動作する localhost/example を指しています。正常に動作させるには、htaccessに1つの違いが必要なようですが。

RewriteRule ^(.+)$ /index.php/$1 [L,QSA]

.dev TLD で機能します。その間

RewriteRule ^(.+)$ index.php/$1 [L,QSA]

(index.php の前にスラッシュがないことに注意してください) は、localhost/example で動作し続けるために必要です (先頭に追加された / により、localhost で見えるようになるため)。

両方のケースで機能するように、.htaccess またはスクリプトを十分に一般的なものにする方法について、誰か考えている人はいますか?

更新:完全なhtaccess

Options +FollowSymLinks
IndexIgnore */*

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

更新 2 : Apache からのエラー ログ。

[Mon Oct 22 12:50:46 2012] [error] [client 127.0.0.1] Request exceeded the limit of 10 internal redirects due to probable configuration error. Use 'LimitInternalRecursion' to increase the limit if necessary.
4

1 に答える 1

0
RewriteRule ^(.+)$ index.php/$1 [L,QSA]

/の下と同様に正常に動作するはず/example/ですが、ルールが以前にループしていなかった方法はわかりません。次のようなものが必要です。

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

また

RewriteCond %{REQUEST_URI} !index.php
RewriteRule ^(.+)$ index.php/$1 [L,QSA]
于 2012-10-22T08:47:42.767 に答える