亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

htaccess 結果中的 URL 重寫缺少 CSS 和圖像

htaccess 結果中的 URL 重寫缺少 CSS 和圖像

PHP
慕田峪7331174 2022-09-03 16:58:39
我需要從我的網址中刪除特定內容。在這里,我給出一個頁面名稱并使用它,然后使用PHP方法使其數組。user.php$_GET['url']explode()https://www.example.com/index.php?url=user我需要像這樣刪除,index.php?url=https://www.example.com/user現在我已經在以下位置使用此代碼:.htaccessRewriteEngine OnRewriteCond %{REQUEST_FILENAME} !-dRewriteCond %{REQUEST_FILENAME} !-fRewriteCond %{REQUEST_FILENAME} !-lRewriteRule index.php?url=$1 [QSA, L]幾乎一切都很好,頁面被完美地加載了。但是當我被賦予我的URL斜杠時,它停止顯示CSS或其他IMG目錄。但是當我刪除文件時,它在此URL中工作正常:user.php.htaccesshttps://www.example.com/index.php?url=user/anonymous但是當我分配規則時,在此URL中不起作用。.htaccesshttps://www.example.com/user/anonymous為什么我的所有樣式表和其他目錄都不能正常工作?
查看完整描述

2 回答

?
慕容708150

TA貢獻1831條經驗 獲得超4個贊

RewriteRule index.php?url=$1 [QSA, L]

我認為你的問題中有幾個明顯的拼寫錯誤(?),使這個指令完全無效......你缺少一個模式,所以這實際上不會匹配任何東西,并且 flags 參數中的錯誤空間在語法上是無效的,導致 500 內部服務器錯誤響應?!RewriteRule

該指令應寫如下:RewriteRule

RewriteRule ^([\w/-]+)$ index.php?url=$1 [QSA,L]

^([\w/-]+)$匹配包含以下任意字符的 URL 路徑:、、、(下劃線)、(斜杠)和(連字符)。我排除了點,它自然是真實文件名的一部分。a-zA-Z0-9_/-

您還應該確保禁用 MultiViews,以便mod_negotiation不會重寫之前的請求 - 因為您的“無擴展名”請求似乎直接映射到文件名。例如。 映射到 。將以下內容放在文件頂部:mod_rwrite/user/user.php.htaccess

Options -MultiViews

但是當我被賦予我的URL斜杠時,它停止顯示CSS或其他IMG目錄。

這不是 的問題,而是通過使用靜態資源的相對客戶端 URL 引起的。當您請求URL時,瀏覽器將解析相對于(而不是文檔根 - 這可能是您所期望的)的任何相對URL。如果你有一個相對的URL,那么瀏覽器自然會解決這個問題 - 這可能不存在(并且可能會被重寫 - 但這不是問題 - 它不存在的事實是問題所在)。.htaccess/user/anonymous/user/anonymouscss/styles.css/user/css/styles.cssindex.php

如果您查看瀏覽器中的網絡流量(HTTP請求),它應該會為您提供有關正在發生的事情的線索。

您需要將客戶端 URL 更改為使用根相對(以斜杠開頭)或絕對(方案 + 主機名)URL 來解決此問題。


查看完整回答
反對 回復 2022-09-03
?
白豬掌柜的

TA貢獻1893條經驗 獲得超10個贊

在 .htaccess 文件中使用以下代碼


RewriteEngine On

#main user page

RewriteRule ^user$ index.php?url=user [L]

#user detail page

RewriteRule ^user/([^/]*)$ index.php?url=$1 [L]


查看完整回答
反對 回復 2022-09-03
  • 2 回答
  • 0 關注
  • 94 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號