2011-10-22 97 views
2

我正在爲我爲PHP中的客戶端(我很少使用)構建的站點開發一個後端,它幾乎已經完成。我主要是Rails開發人員,所以我很難不做一些CRUD設置的混亂版本,並且我正在嘗試清理Url。PHP中沒有mod_rewrite的乾淨URL

,我想我的網址是像這樣:

http://www.example.com/videos/name-of-video/

我計劃只是把URL的最後一點$_SERVER['PHP_SELF']和使用,通過數據庫搜索,但我想什麼do是將index.php文件放在http://www.example.com/videos/目錄中,並在我明確指出某人爲http://www.example.com/videos/name-of-video/時使用它,如果有意義的話。

這樣工作,如果我把index.php放在/ videos /目錄下,或者是其他需要的東西?是否有可能不與htaccess搞亂?

對不起,我可憐的解釋。我希望這是有道理的。

謝謝!

+0

[擰它,只是想走的htacces] [1] [1]:http://stackoverflow.com/questions/7857818/clean-urls-mod-rewrite-issue – goddamnyouryan

回答

2

據我所知,如果不碰觸.htaccess,這種操作是不可能的。 當你編寫url http://www.example.com/videos/name-of-video/你的服務器肯定會在文件夾名稱視頻文件夾中尋找index.php文件。這不存在。

如果這項任務可以在不使用.htaccess的情況下實現,那麼它們將永遠不會被使用。 順便說一句,爲什麼你不想使用.htaccess .. ??

+0

添加對此,您可以使用PHP處理url,不過,您只能使用.htaccess調用php腳本。 (即在/之後重寫任何內容到index.php?access =/something,所以這會將example.com/videos/name-of-video重寫爲index.php?access =/videos/name-of-video然後你可以處理並運行正確的一段PHP代碼)。 –

3

有幾個選項可以不用RewriteRule。不是沒有.htaccess搞亂。

首先,你可以命名一個PHP腳本沒有擴展名,那是video而不是video.php,然後通過ForceTypeDefaultType設置實際的文件類型。所以PHP解釋器仍然會提取它。路徑將顯示在$_SERVER['PATH_INFO'

同樣,一個啓用的+MultiViews允許PHP腳本沒有擴展名。

最後一個ErrorDocument處理程序可以用來代替真正的RewriteRule。但是它帶來了許多缺點。

index.php本身不會在假道中拾取任何隨機文件名。唯一的選擇是使用像http://www.example.com/videos/?name-of-video/

所以沒有。沒有好的網址與目錄模仿沒有一些配置。