2015-08-16 48 views
1

我試過了一切。下面的.htaccess文件似乎我的本地XAMPP服務器上的奇蹟:.htaccess apache上的RewriteRule無法正常工作

<IfModule mod_rewrite.c> 
RewriteEngine On 
RewriteRule pilot/([^/]*)$ /pilot.php?name=$1 
</IfModule> 

但可悲的是,當我把它上傳到我的主網絡不能正常工作。任何幫助或意見,將不勝感激。

編輯:我忘了補充說,它確實重定向到該文件,但該變量不抓住一些奇怪的原因。我也試過這個:

RewriteRule ^pilot/(.*)$ /pilot.php?name=$1 

但它也不起作用。我完全失去了。我的網絡主機是OVH。

EDIT2:我至少能夠縮小這個問題的範圍。我發現這樣做:(注意 - 而不是/)

RewriteRule ^pilot-(.*)$ pilot.php?name=$1 

工作絕對好。斜線有問題,但我無法想出解決方法。

EDIT3:嗯,顯然

重寫規則^字符/(A-ZA-Z _] +)$ show.php名= $ 1 [L]

的作品,但

重寫規則^導頻/([A-ZA-Z _] +)$ show.php?名稱1 = $ [L]

沒有。哦..

回答

1

嘗試添加該在你的htaccess:

Options -MultiViews 

多視圖的效果如下:如果服務器收到/一些/ DIR /富,如果/一些/目錄的請求啓用了多視圖,並且/ some/dir/foo不存在,那麼服務器讀取目錄以查找名爲foo。*的文件,並且有效地僞造一個類型映射,命名所有這些文件,爲它們分配相同的媒體類型和內容如果客戶要求提供其中的一個名稱,則可能會有這種情況。然後它會根據客戶的要求選擇最佳匹配。 http://httpd.apache.org/docs/2.2/en/content-negotiation.html

有了這樣的工作做好後:

RewriteRule pilot/([^/]*)$ /pilot.php?name=$1