[英]PHP rewrite rule is not working for query string
我在htaccess文件中編寫以下規則,以將查詢字符串更改為目錄結構
RewriteRule ^dashboard/([0-9]*)?$ dashboard.php?user_id=$1
用於重寫網址。 它工作正常
localhost/project/dashboard // (dashboard.php)
和所有鏈接是
localhost/project/css/style.css
localhost/project/js/script.js
但是當我附加一個ID
localhost/project/dashboard/1 // (dashboard.php?user_id=1)
它將所有鏈接更改為
localhost/project/dashboard/css/style.css
localhost/project/dashboard/js/script.js
為什么將dashboard
附加到所有鏈接
這是因為您“告訴他”要這樣做。
RewriteRule ^dashboard/([0-9]*)?$ dashboard.php?user_id=$1
// ^here you tell him to print that "dashboard"
當然,其他鏈接也可以工作-您甚至不將該規則與之匹配。
我在這里找到了您,向下滾動到標題“ Strip Query Strings”。 在那里,它說您要這樣做:
RewriteCond %{QUERY_STRING} example=
RewriteRule (.*) http://www.domain.com/$1? [R=301]
當然,只是將該URL更改為您自己的URL。
如何在您的html文件中引用style.css?
如果您具有這樣的href =“ css / style.css”,則HTML不會知道您正在重寫,認為/ 1是文件夾,並且會在dashboard / css / style.css中顯示
任何使用url重寫的系統通常都必須編寫樣式和腳本的所有路徑來避免這種情況。 因此您必須像這樣引用您的樣式href =“ http://localhost/project/css/style.css”
如果您有一個生產和開發環境,它將幫助您擁有一個像
if($SERVER['SERVER_NAME']=='localhost'){
$BASE_URL = "http://localhost/project/"
}else{
$BASE_URL = "http://mydomain.com/"
}
並將其放在對CSS,腳本或圖像的任何調用之前;)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.