簡體   English   中英

使用 .htaccess 刪除擴展名但保留參數會導致頁面無樣式

[英]Removing extensions with .htaccess but keeping Parameters causes unstyled page

我正在嘗試構建一個用於重定向或“美化” URL 的構造。

我想達到以下結果:

  • 像 domain.com/signup.php 這樣的 URL 應該被 domain.com/signup 訪問
  • 參數應該像 domain.com/signup/HASH 一樣工作將導致 domain.com/signup.php?hash=HASH
  • 如果可能,多個參數應該是可擴展的,如 domain.com/signup/HASH/VERIFIED -> domain.com/signup.php?hash=HASH&status=verified

我目前的做法是

RewriteCond %{REQUEST_FILENAME}.php -f
RewriteRule !.*\.php$ %{REQUEST_FILENAME}.php [QSA]

我嘗試了很多,但要么不起作用,要么以無樣式的頁面結束。 有什么建議?

在您的頁面中使用絕對鏈接。
如果您在頁面中使用任何圖形或鏈接,請不要使用“相對鏈接”。 相反,將所有以http://www.example.com/...開頭的鏈接http://www.example.com/... “絕對鏈接”。

或者一個相對於根的鏈接,以/開頭的 href 值。

在您的情況下: http://www.example.com/css/Stylesheet.css/css/Stylesheet.css

您還可以在 html 中添加<head> : <base href="/">

如果您只在站點的根目錄使用參數,則可以使用:

RewriteCond %{DOCUMENT_ROOT}/$1.php -f
RewriteRule ^([^/]+)/?$ $1.php [L]

# with one parameter
RewriteCond %{DOCUMENT_ROOT}/$1.php -f
RewriteRule ^([^/]+)/([^/]+)/?$ $1.php?hash=$2 [L,NE,QSA]

# with two parameters
RewriteCond %{DOCUMENT_ROOT}/$1.php -f
RewriteRule ^([^/]+)/([^/]+)/([^/]+)/?$ $1.php?hash=$2&status=$3 [L,NE,QSA]

暫無
暫無

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

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