簡體   English   中英

從地址欄中隱藏文件夾名稱,但只有1個內部CSS頁面鏈接不起作用

[英]Hide folder name from address bar but only 1 internal css page link not work

我想通過.htaccess隱藏地址欄中的文件夾名稱,這意味着隱藏myfolder名稱: http ://www.myweb.com/myfolder/mypage但只有1個內部css頁面鏈接不起作用。

我使用了從stockoverflow收集的以下代碼,其隱藏文件夾名稱很好,但內部頁面鏈接不起作用。

其他人css和js鏈接也很好用。

信息:我有2個css文件夾。 一個是根目錄,另一個是myfolder目錄。

內部頁面鏈接:

All css and js page link like as

<link href="css/style.css" rel="stylesheet" type="text/css" />

Try 1:

<link href="../myfolder/css/style.css" rel="stylesheet" type="text/css" />

Also try 2:

<link href="http://www.myweb.com/myfolder/css/style.css" rel="stylesheet" type="text/css" />

我的htaccess

Options +FollowSymLinks -MultiViews
# Turn mod_rewrite on
RewriteEngine On
RewriteBase /

RewriteCond %{REQUEST_FILENAME}.php -f
RewriteCond %{REQUEST_URI} !/$
RewriteRule (.*) $1\.php [L]

RewriteCond %{THE_REQUEST} ^[A-Z]{3,}\s/+myfolder/([^\s]+) [NC]
RewriteRule ^ %1 [R=301,L]

RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule (?!^myfolder/)^(.*)$ /myfolder/$1 [L,NC]

問題在於,如果請求路徑尚不存在,則以下規則僅將請求傳遞到/myfolder文件。 但是,由於/css/style.css也存在於根目錄中,因此測試失敗並搶占了該規則。

RewriteCond %{REQUEST_FILENAME} !-f # if not a file
RewriteRule (?!^myfolder/)^(.*)$ /myfolder/$1 [L,NC]

解決此問題的最簡單方法是重命名myfolder目錄中的文件夾或css文件。 另一種方法是附加一個查詢字符串標簽,如

<link href="css/style.css?myfolder" rel="stylesheet" type="text/css" />

並在.htaccess中檢查它

RewriteCond %{REQUEST_FILENAME} !-f [OR]
RewriteCond %{QUERY_STRING} ^myfolder$ [NC]
RewriteRule (?!^myfolder/)^(.*)$ /myfolder/$1 [L,NC]

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM