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]

应该可以在 under/和 under 下正常工作/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 回答