有沒有辦法將 .htaccess 中的所有 url 改寫為 index.html 但現有資料夾?當我使用 Vue-Router 時
P粉425119739
P粉425119739 2023-08-31 23:59:45
0
1
540
<p>我建立了一個包含<code>Vue-Router</code> 的<code>VUE CLI</code> Web 應用程序,因此我應該將所有請求重寫為<code>index. html</code> 文件,如下: </p> <pre class="brush:php;toolbar:false;">RewriteEngine On RewriteRule ^(.*)$ ./index.html [L]</pre> <p>但有一個問題,有兩個資料夾<code>css</code> 和<code>js</code> 包含打包的<code>css</code> 和<code> js</code> > 的,由<code>Vue-CLI</code> 自動產生。瀏覽器將發送以下請求:<code>https://example.com/css/xyz.css</code>,但正如上面重寫的那樣,<code>Apache</code>會回答< code>index.html。 html</code> 檔案。例如 <code>js</code> 資料夾/檔案</p> <p>如何將所有請求重寫為<code>index.html</code> 但現有文件/資料夾,如<code>favicon.ico</code> 或<code>Bootstrap</ code> <code> css</code>/<code>js</code> 檔案或圖片或<code>css</code>/<code>js<code>css</code>/<code>js<code>css</code>/<code>js</code> 檔案位於同一資料夾中>/<code>js< ? </p>
P粉425119739
P粉425119739

全部回覆(1)
P粉763748806

當我閱讀問題的第一條評論時(此處),我明白我可以使用RewriteCond 的這個表達式(重寫前的條件處理)

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . ./index.html

在將所有請求重寫到index.html 檔案之前,有兩個條件,檢查REQUEST_FILENAME 以確保REQUEST_FILENAME# 而不是(REQUEST_FILENAME >!) 目前資料夾或目前資料夾的子資料夾之一中的檔案(-f) 或目錄(-d)

注意: ONE RewriteRule 之前的每個RewriteCond 僅影響相同的RewriteRule並且不會影響RewriteRule 之後的任何RewriteRule

熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板