我想寫我的網址與字符串的格式如下: http://www.mysite.com/news/2012/10/04/article-title 但是當我在htaccess文件的網站樣式使用重寫規則不正常工作。我有這個問題:什麼是最好的方式來做到這一點在PHP? 以前我在asp.net白色重寫模塊中這樣做,但現在我不能這樣做,我已經搜索了很多次,閱讀了很多文章,但仍然有這個問題.... 非常感謝寫乾淨的URL在PHP
回答
使用一個入口點(可能是最好的,如果它帶有特定擴展名結尾檢查完成)包含所需地址的GET變量。現在,您可以決定如何在PHP中進行路由(使用includes),其中控制更容易。此外,您應該使用絕對路徑指向您的樣式,或者使用PHP變量來包含樣式的絕對路徑。
以上.htaccess
確保如果文件存在,它不會重寫URL。 (2-3行)。
就個人而言,我使用絕對路徑(或至少相對於根)在我的樣式表和腳本時,把:
<link rel="stylesheet" href="/css/styles.css" />
如果不爲你工作,那麼你可能重寫你的CSS路徑,以及。
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /index.php?route=$1 [L]
這樣,所有的請求都將被路由到索引頁,具有:根據需要排除的文件
好點 - 相對於根有很大幫助。我通常將樣式/ JS文件/圖像保存在「數據」文件夾中,這樣我就可以將其排除在任何重寫之外。似乎比排除某些擴展更容易,因爲您可以將任何不想重寫的內容(包括PHP和HTML)放在數據文件夾中。 –
我可以這樣做嗎?例如,我可以將我的CSS,js,img文件保存到額外的文件夾中,並從重寫中排除該文件夾,但是如何? –
如果您的規則設置正確,但之後您的CSS格式不見了,這意味着您的CSS文件的相對路徑現在不正確。
你可能會使用這樣的事情現在:
<link rel="stylesheet" href="css/styles.css" />
更改它以這樣的:
<link rel="stylesheet" href="/css/styles.css" />
我改變了css文件路徑,但它的劑量工作 –
我使用的解決方案是基本的HTML標籤,挑選出圖像和樣式表。
請務必使用:RewriteCond %{REQUEST_FILENAME} !-f
至少 - 也許可以讓它更安全,所以直接路徑仍然可以。
我有這條線在我的htaccess文件,但仍然有問題\ –
- 1. 乾淨的URL在PHP
- 2. PHP mod_rewrite&.htaccess乾淨的URL
- 3. PHP $ _GET不乾淨的URL
- 4. 乾淨的URL和PHP
- 5. PHP SEO用乾淨的URL
- 6. 如何有乾淨的URL在PHP
- 7. 在PHP中路由乾淨的URL
- 8. 簡單的nginx重寫乾淨的URL
- 9. 現代重寫URL乾淨的
- 10. .htacess - 寫一個乾淨的URL
- 11. Laravel乾淨的URL
- 12. 乾淨的URL援助php/.htaccess
- 13. 乾淨的URL與htaccess和PHP
- 14. PHP中沒有mod_rewrite的乾淨URL
- 15. NGINX重寫規則爲乾淨URL
- 16. PHP和編寫乾淨的代碼
- 17. 讓PHP寫出乾淨的html
- 18. PHP乾淨URL(.htaccess)是否捲曲
- 19. 乾淨的URL與htaccess的
- 20. mod_rewrite的不乾淨的URL
- 21. 乾淨的URL htaccess的
- 22. 乾淨的URL使用mod_rewirte
- 23. Opencart - >乾淨的URL
- 24. 乾淨的URL與htaccess
- 25. Tomcat,Groovy和乾淨的URL
- 26. 動態和乾淨的URL
- 27. 乾淨的URL與htaccess
- 28. Laravel乾淨的url問題
- 29. 乾淨的URL與.htaccess
- 30. Rails 3和乾淨的URL
當我使用這個htaccess代碼時,首先我的樣式工作正常,但是當我去其他網址的時候,例如:www.mysite.com/test/我的樣式不見了,我嘗試了css路徑,在這種情況下,我將css路徑更改爲:href =「../ css/main.css」,我的風格正常工作! –
如何定義一個變量來修復我的CSS和JS路徑? –
我使用這段代碼解決了這個問題:define('ROOT_DIR',dirname(__ FILE__)); \t define('ROOT_URL',substr($ _ SERVER ['PHP_SELF'],0, - (strlen($ _ SERVER ['SCRIPT_FILENAME']) - strlen(ROOT_DIR)))); –