最近,我的託管服務提供商已將其apache系統更新爲2.4.4。在這樣做,它已經導致我的表達引擎網站中斷,因爲我現在需要強制查詢字符串來運行網站。棄用PATH_INFO .htaccess規則損壞
從我瞭解你可以很容易地通過剛剛更新線在我的.htaccess規則來解決這個問題...
RewriteRule ^(.*)$ /index.php?/$1 [L]
不幸的是,這種修復並不這麼簡單。
我的網站使用自定義表達引擎插件來檢測他們在使用IP到Nation模塊的世界的哪個區域。基本上發生的事情是,如果你來自美國,你會看到美國內容爲&的網站,如果你從其他任何地方將「國際」附加到URI的第一部分,該部分將根據第一部分顯示國際內容我們的URI
例如
http://www.example.com/segment_1/segment_2/segment_2 = US SITE
http://www.example.com/international/segment_1/segment_2/segment_2 = INTERNATIONAL SITE
當我試圖在查詢字符串添加到重寫規則進行的index.php它打破了國際網站,我不知道爲什麼。
RewriteCond $1 !\.(gif|jpe?g|png)$ [NC]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /index.php/$1 [L]
RewriteRule /international/(.*)$ /index.php/$1 [L]
添加「?」到RewriteRule ^(.*)$ /index.php?/$1 [L]
修復美國網站,但打破國際網站,說它無法找到國際頁面。
添加「?」到RewriteRule /international/(.*)$ /index.php?/$1 [L]
修復國際網站,但美國網站將無法正常工作,因爲它需要查詢字符串。
並將它添加到他們都不會工作。
我很明顯錯過了.htaccess中的某些內容來克服這個問題,但我似乎無法生成正確的語法。
任何想法?
這almpost工作,這definetly指着我towrads正確的方向謝謝非常。我只需要添加'RewriteRule ^(。*)$ /index.php/$1 [L]'就好像國際因爲索引而已。PHP仍然需要可用+我確實需要重複3個初始條件以及第二部分。謝謝@彼得劉易斯 – 2013-05-03 13:53:39