我的文件夾結構:mod_rewrite的 - 防止多重定向
現在我有,在某些情況下,我的Apache重寫往往內部,我得到一個500服務器錯誤的問題,這裏的日誌:
[Wed Jan 05 17:51:54 2011] [error] [client 127.0.0.1] Request exceeded the limit of 3 internal redirects due to probable configuration error. Use 'LimitInternalRecursion' to increase the limit if necessary. Use 'LogLevel debug' to get a backtrace.
[Wed Jan 05 17:51:54 2011] [debug] core.c(3046): [client 127.0.0.1] r->uri = /nameoftherootfolder/public/index.php
[Wed Jan 05 17:51:54 2011] [debug] core.c(3052): [client 127.0.0.1] redirected from r->uri = /nameoftherootfolder/public/index.php
[Wed Jan 05 17:51:54 2011] [debug] core.c(3052): [client 127.0.0.1] redirected from r->uri = /nameoftherootfolder/public/index.php
[Wed Jan 05 17:51:54 2011] [debug] core.c(3052): [client 127.0.0.1] redirected from r->uri = /nameoftherootfolder/nothere/
我的.htaccess:
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} -s [OR]
RewriteCond %{REQUEST_FILENAME} -l [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^.*$ - [NC,L]
RewriteRule ^.*$ index.php [NC,L]
在index.php處理所有要求,如果協調官還處理ssed網址錯誤,例如不存在。
它的工作原理是如果訪問的url存在,但它的URL是「錯誤的」我得到這個錯誤。 我得到這個只是因爲我設置一個Apache別名:
Alias /nameoftherootfolder/ "C:/somepathshere/WAMP/www/nameoftherootfolder/public/"
<Directory "C:/somepathshere/WAMP/www/nameoftherootfolder/public/">
Options Indexes FollowSymLinks MultiViews
AllowOverride all
Order allow,deny
Allow from all
</Directory>
如何我現在可以防止過多的內部重定向與Apache?有沒有RewriteCond? 我使用的是Apache 2.2.11。
編輯:
如果我把一個index.php/
它的工作URI內,但是這是SEO不友好,對用戶不夠友好,看起來可怕,例如請求。 http://localhost/nameoftherootfolder/index.php/nothere/
或http://localhost/nameoftherootfolder/index.php/index/
編輯#2:我添加
RewriteBase /nameoftherootfolder/
後,它的工作原理就知道了。
嗯......它似乎沒有影響...仍在apache錯誤日誌中得到相同的錯誤。 – Poru 2011-01-05 17:28:38
@Poru嘗試更新的版本,它是一個完整的htaccess文件 – 2011-01-05 17:35:50
我試過了,結果相同...也許這是別名的問題?順便說一句。看看上面的編輯。 – Poru 2011-01-05 17:37:45