簡體   English   中英

使用.HTaccess進行URL重定向和重寫

[英]Working with .HTaccess for url redirects and rewrites

一段時間以來,我一直在研究使用.htaccess ,以使網站上的URL更加用戶友好。

但是,在瀏覽了互聯網上無窮無盡的信息流之后,我似乎找不到一種用簡單的英文解釋命令的工作方式來進行以下操作的方法。

我的托管服務提供商的技術支持團隊建議我咨詢專業的Web開發人員,因此我認為這里是一個很好的咨詢場所。 但是,如果它在錯誤的網站上,我向您致歉。

我認為擁有代碼和解釋將幫助那些希望獲得類似結果的人更快地到達那里,而不是四處亂逛和感到困惑。

為了明確起見,由於我有某些目標,因此我希望在.htaccess文件中執行以下操作:

  1. 刪除文件擴展名(www.mydomain.com/file.html和www.mysubdomain.domain.com/file.html),以使URL看起來像www.mydomain.com/file/。
  2. 使這些規則也適用於根域和子域的.shtml擴展名,這樣,如果我要在子目錄中添加任何.shtml文件,則無需進行任何額外的處理即可處理它們。

我想盡量減少行數,以使其他人可以更輕松地在自己的網站中遷移和使用。

在此先感謝您的幫助,非常感謝。

要刪除文件擴展名htmlshtml ,可以使用以下命令:

RewriteEngine On

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

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

這些是采取的步驟:

  1. 首先,為此請求打開重寫引擎。
  2. 然后檢查<request_uri>.html<request_uri>.html存在。 如果是這樣,請在內部將<request_uri>/ (如您所指定的末尾加正斜杠)重寫為現有文件。

如果要使尾隨斜杠為可選,則可以將表達式從^(.*)/$更改為^(.*)/?$ (添加問號使其成為可選)。

為您提供解決方案

要刪除擴展名,請使用:

RewriteRule ^([^\.]+)$ $1.html [NC,L] 

要應用.shtml,請使用:

RewriteRule ^([^\.]+)$ $1.shtml [NC,L]

暫無
暫無

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

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