2011-10-30 159 views
0

我目前正在嘗試瞭解乾淨的網址。我曾經使用過窗戶。 我切換到Ubuntu的時候,突然我的.htaccess似乎不在這裏工作 是我的htaccess乾淨網址上的PHP問號

<IfModule mod_rewrite.c> 
    RewriteEngine On 
    RewriteBase/
    RewriteCond %{REQUEST_FILENAME} !-f 
    RewriteCond %{REQUEST_FILENAME} !-d 
    RewriteRule ^(.*)$ index.php?/$1 [L] 
</IfModule> 

,所以我有這個網址

http://localhost/index.php/my_name/

我被它期待說在瀏覽器中的'my_name'字符串

hello my_名稱

但它只會工作,只要我添加'?'在URI

http://localhost/index.php?/my_name/

我敢肯定mod_rewrite的啓用。我甚至檢查了我的phpinfo()

+0

也許你沒有安裝mod_rewrite模塊?檢查httpd.conf並檢查你的日誌([info](http://httpd.apache.org/docs/2.0/mod/mod_rewrite.html#rewritelog)) – Peter

+0

index.php文件中的代碼是什麼? –

+0

這一次我有我的mod_rewrite啓用,但它仍然需要一個?爲了回顯$ _SERVER [QUERY_STRING] – kapitanluffy

回答

2

這聽起來像重寫模塊被禁用。如果可用,編輯您的apache配置並加載mod_rewrite的動態模塊。它應該是這樣的:

LoadModule rewrite_module modules/mod_rewrite.so 

如果你正在使用Ubuntu,運行sudo a2enmod rewrite,使模塊通過重新啓動Apache服務器如下:

sudo /etc/init.d/apache2 restart 
+0

所以我會把LoadModule放在httpd.conf裏面?該死的硬是一個Windows用戶xD – kapitanluffy

+0

@kapitanluffy您使用的是什麼Linux發行版?一般來說,你確實要把它放在httpd.conf中,但發行版可能有他們自己喜歡的配置方法。 – Lekensteyn

+0

我正在使用Ubuntu – kapitanluffy

0

找到了解決辦法。轉儲$ _SERVER變量並使用REQUEST_URI索引,因爲QUERY_STRING不顯示任何內容。會+1 Lekensteyn的回答,因爲它使我走向正確的道路