我花了最後3個小時試圖弄清楚這個問題,但總有一部分不起作用,所以如果有人能幫助我,我會非常感激。代碼點火器中的htaccess和路由問題
即時通訊工具試圖在htaccess中實現的是: 刪除尾部斜線並強制執行www。
因此,這些例子4需要表現出同樣的結果:
#1. www.mysite.com/products/show/
#2. www.mysite.com/products/show
#3. mysite.com/products/show/
#4. mysite.com/products/show
他們都需要顯示#2,因爲這是正確的。
有很多的例子和解決方案,做到這一點,我得到它的工作,但!即時通訊也使用此控制器上的路線,看起來像這樣: $ route ['products /(:any)'] =「products/show/$ 1」;
再一次,它是所有的工作,無論是htaccess和路線,問題出現時(:any)包含一個斜線,例如foo-bar。然後突然#3失敗,該網站只是沒有加載和一些奇怪的原因url更改爲www.domain.tld/products/foo-bar(是的,它實際上打印出domain.tld,即時消息不使用它作爲一個這個域當然不是有效的域)
下面是我目前在我的htaccess中,請記住,對於www的執行,我不能!硬編碼實際的域名,因爲會有多個域指向這個文檔根目錄,全部使用同一個腳本構建。
Options +FollowSymlinks
RewriteEngine On
RewriteBase/
#RewriteRule ^(welcome(/index)?|index(\.php)?)/?$/[L,R=301]
RewriteCond $1 !^(index\.php|images|doc)
RewriteRule ^(.*)/index/?$ $1 [L,R=301]
# Removes trailing slashes (prevents SEO duplicate content issues)
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.+)/$ $1 [L,R=301]
# Enforce www
RewriteCond %{HTTP_HOST} ^([^.]+)\.([^.]+)$ [NC]
RewriteRule ^(.*)$ http://www.%1.%2/$1 [R=301,L]
感謝您的幫助,
傑森
感謝您的回覆drewjoh,我會問我的主人,看看他們能否爲我解決這個問題。儘管如此,仍然在尋找htaccess解決方案。 – Jason 2011-02-24 18:01:12
爲我更新了我的答案。希望它有一點幫助。 – drewjoh 2011-02-24 18:35:08
謝謝,我現在已經刪除了路由,並且正在使用__remap,而且仍然存在相同的問題。我只是發送一個請求到我的主機來看看,也許添加cname。謝謝你的幫助! – Jason 2011-02-25 14:16:41