2013-04-06 27 views
1

我有包括重定向URL來www.site.com/machines/重定向到頁面如何將www.site.com/index.php/重定向到www.site.com/index.php?

RewriteRule ([^/\.]+)/$ index.php?task=cat&p_name=$1 [L] 

爲客戶想優化URL的名字,而不是ID
但在情況下,顯示機index.php www.site.com/index.php/它應該重定向到索引頁面。 我厭倦了使用這種條件下,重寫URL

RewriteCond %{REQUEST_URI} !^/index.php/$ [NC] 

之前,但這不是完全重定向到頁面www.site.com/index.php。 因此一些CSS和圖像無法正確顯示 所以,我想另一種方式

RewriteCond %{REQUEST_URI} ^/index.php/$ [NC] 
RewriteRule ^index.php/$ index.php? [R=301,L] 

這被重定向這樣 http://www.site.com/home/user/public_html/www.site.com/index.php 請幫我重定向URL感謝

+0

這是奇怪的行爲。你的.htaccess文件中有一個RewriteBase指令嗎?如果是這樣,可能會註釋掉RewriteBase指令並查看是否可以解決問題。 – Bobulous 2013-04-06 15:41:30

回答

0

可以擺脫這裏簡單的條件使用:

RewriteRule ^index\.php/$ /index.php [L,R=301] 

與CSS和圖像不顯示這個問題可能是因爲您使用RELAT你的html中的URI。你需要要麼改變他們絕對URI的(那些帶有前導斜槓)或添加相對URI基地頁面標題:

<base href="/"> 

或任何基礎應該是。

+0

它的工作原理謝謝.. – 2013-04-12 13:25:57

0

我想你忘記了基本名前放置一個斜槓:

RewriteRule ^index.php/$ /index.php? [R=301,L] 

然而,這看起來更好,如果你使用這個代碼,而不是說:

RewriteCond %{REQUEST_URI} ^/index.php/$ [NC] 
RewriteRule ^(.*) /index.php [QSA,R=301,L] 
+1

我能夠重定向謝謝。工作正常 – 2013-04-12 13:25:06

相關問題