我有一個關於mod_rewrite的問題。我知道在htaccess我可以做<IfModule>
,但在PHP中呢?在html中,我寫出了我的鏈接,如projects/24
,其確實是action=projects&id=24
。如果有人安裝此應用程序的服務器沒有mod_rewrite,那麼如何在PHP中將鏈接更改爲GET變量?如果服務器沒有mod重寫
1
A
回答
3
編輯: 我不知道這差點否決了正確的答案,但他顯然不能RTM。
下面是一些代碼來說明:
<?php
if (in_array("mod_rewrite", apache_get_modules())) {
echo 'has rewrite';
} else {
echo 'no rewrite';
}
?>
使用此來決定你想要寫哪種鏈接。
0
-1
我不知道你要與落得什麼,但是這可能會推動你在正確的方向:
http://www.tutorio.com/tutorial/php-alternative-to-mod-rewrite-for-se-friendly-urls
當然也有其他的問題,這一點,最大的在搜索引擎中緩存和索引這些類型的URL時遇到了問題。
0
有解決方法使用ErrorDocument和處理失敗的請求在userland(= PHP腳本)。但是這會(1)污染日誌,(2)不能與POST請求一起使用(取決於服務器)。不會因此而煩惱。
一個實用的選擇是將PATH_INFO
用於乾淨的URL以及一個或多個根腳本。您需要使用它。 +MultiViews
或SetHandler
或DefaultType
和ForceType
(它可以用來種植一個php腳本sans擴展名)。 [1]
但通常情況下,這些也是禁止指令,如果甚至沒有啓用mod_rewrite。
[1]不要忘記一個FilesMatch節來限制效果,或者在子目錄中再次禁用它。
相關問題
- 1. Mod重寫。如果沒有endslash重定向到endslash
- 2. .HTACCESS Mod重寫沒有後綴?
- 3. Mod重寫服務器狀態503,取決於URL
- 4. Mod重寫規則到Zeus服務器規則(Codeigniter)
- 5. 啓動IIS服務器,如果IIS服務器沒有運行
- 6. Mod重寫URL
- 7. Mod重寫NGINX
- 8. Tricky mod重寫
- 9. URL重寫MOD
- 10. mod-rewritre沒有效果:
- 11. 如果url只有1段,創建mod重寫
- 12. Mod在結果中用問號重寫
- 13. URL重寫:服務器不重寫
- 14. Mod重寫問題
- 15. Backbone.js和mod重寫
- 16. 解析Mod重寫
- 17. htaccess mod重寫phpmyadmin
- 18. Mod重寫幫助
- 19. Mod重寫.htaccess中?
- 20. mod重寫問題?
- 21. Apache htaccess mod重寫
- 22. Mod重寫錯誤
- 23. Mod重寫問題
- 24. Mod重寫問題
- 25. 用Joomla重寫Mod
- 26. Mod重寫get vars
- 27. 編寫mod重寫規則
- 28. 改寫mod重寫幫助
- 29. 服務器重寫規則
- 30. Zeus服務器URL重寫
不會添加mod_rewite是最簡單的解決方案嗎? – 2011-09-01 20:27:14
爲什麼所有的downvotes? – animuson
當然,添加mod_rewrite會更容易,但如果這是我想要銷售的應用程序,我希望用戶無需安裝。這只是一個倒退。當然,他們可以安裝mod_rewrite,但如果沒有安裝,我不希望我的應用程序被破壞 – Ronnie