2015-12-07 39 views
2

我不知道用LAMP 1-Click應用程序的Ubuntu 14.04在Digital Ocean中的所有服務器出現問題。爲什麼總是在第一個字符中使用'p'來重寫所有重寫?

當我嘗試這樣的.htaccess總是返回錯誤404未找到

RewriteRule ^page/([0-9]+)/$ index.php?page=$1 [L] 
    RewriteRule ^privacy/$ page.php?name=privacy [L] 
    RewriteRule ^pages/([a-zA-Z0-9._-]+)$ page.php?name=$1 [L] 

,並在第一個字符「P」等規則。但除第一個字符中的「p」之外的其他名稱是工作。有我的服務器上的示例工作代碼:

RewriteRule ^category/([a-zA-Z0-9._-]+)$ index.php?cat=$1 [L] 
RewriteRule ^category/([a-zA-Z0-9._-]+)/$ index.php?cat=$1 [L] 
RewriteRule ^find/tag/([a-zA-Z0-9._-]+)/$ index.php?tag=$1 [L] 

我試了以上所有localhost和共享主機是100%的工作。

回答

2

這似乎是在您的Ubuntu服務器上啓用選項MultiViews的問題。

關閉它通過將該行第一行根的.htaccess:

Options -MultiViews 
  • 選項MultiViews所使用的Apache's content negotiation module運行mod_rewrite之前,使文件的Apache服務器匹配擴展。所以/page可以在URL中,但它將服務於/page.php
+0

終於有作品了,謝謝。順便說一下,這條線是啓用或禁用? –

+0

'選項-MultiViews'禁用它,你需要禁用它。 – anubhava

+0

是的,我做了,順便說一下,在Nginx中呢?我在Ubuntu服務器的LEMP中有與nginx相同的問題? [這是我的老問題](http://stackoverflow.com/questions/33850247/some-nginx-rewrite-are-not-found) –

相關問題