2017-10-20 146 views
0

我有一個即時通訊使用此代碼測試htaccess的這個痘痘PHP頁面:htaccess未按預期工作?

<?php 

if(isset($_GET['opt'])) { 
    echo 'your option was '.$_GET['opt']; 
} 
else { 
    echo 'please write something like ?opt=1'; 
} 

?> 

然後即時通訊我的htaccess的文件,我有這樣的:

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteRule  ^page/([A-Za-z0-9-_\-]+)/?$ page.php?opt=$1 [L] 

,當我試圖把在url類似網頁/ 1它不會工作,但是當我從^頁面更改htaccess到^頁面它的工作原理...怎麼回事?

我想要的網址是頁/東西

tks提前。

回答

0

用途:

Options -MultiViews 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteRule  ^page/([A-Za-z0-9-_\-]+)/?$ page.php?opt=$1 [L] 

Apache docs on mod_negotiation,描述了MultiViews選項做什麼,當啓用時:

如果 服務器接收/一些/目錄/ foo和/一些/請求dir/foo不存在 ,則服務器讀取目錄以查找名爲 foo。*的所有文件,並有效地僞造一個類型映射,它將所有這些文件命名爲 文件,併爲它們分配相同的介質類型和內容t編碼 將會有,如果客戶要求其中的一個名稱。然後 選擇最符合客戶要求的,並返回 文件。

所以在你的情況下,它必須停用。

+0

tks爲答案=)爲什麼在其他的wamp instalation我沒有選項-multiviews? Apache的版本? – eskimopest

+0

實現這種安裝的人發現它更合乎邏輯。這不一定是錯誤的。 – Croises