我想從我的網址中刪除.html
擴展,它位於特定目錄中,並將它們重定向301。重定向301 - 從網址中刪除.html擴展
這裏的結構是怎樣的樣子:
mysite.com/category/nameofcategory/pagenumber.html
的事情是,nameofcategory
和pagenumber
可以是任何字母或數字。
你能幫我解決嗎?
我想從我的網址中刪除.html
擴展,它位於特定目錄中,並將它們重定向301。重定向301 - 從網址中刪除.html擴展
這裏的結構是怎樣的樣子:
mysite.com/category/nameofcategory/pagenumber.html
的事情是,nameofcategory
和pagenumber
可以是任何字母或數字。
你能幫我解決嗎?
我不會建議讓您的內容散佈在不同文件夾中的許多HTML文件中。如果您想要更改頁面佈局,這變得非常不切實際。
將內容存儲在數據庫中是一個更好的解決方案。如果這是不可能的,那麼html文件可能只包含格式化的文本內容,並且當請求頁面時,後端腳本可以將該內容嵌入佈局。
這需要在Apache配置中啓用mod_rewrite模塊。
在這兩種情況下,所有的請求將通過後端腳本進行路由和的.htaccess可能是這個樣子:
RewriteEngine on
RewriteRule ^category/([^/.]+)/([^/.]+)/?$ index.php?category=$1&page=$2 [L]
正則表達式的這一部分:([^/.]+)
比賽和捕捉那並不是一個字符串不包含字符/或。並且是1個字符長或更長。捕獲的字符串可以用$ 1,$ 2等參考。
現在像mysite.com/category/foo/bar漂亮的網址工作。另外,我們需要定義一個重定向以「.html」結尾的舊網址的規則。可能是這個樣子所需的規則:
RewriteRule ^category/([^/.]+)/([^/.]+).html$ category/$1/$2 [R=301,L]
有一點要記住,而測試和調整重定向是重定向可以在瀏覽器中進行測試時,這可能會導致混亂的結果中緩存。
要刪除URL上的.html
延伸和301重定向到擴展名的URL,你可以嘗試在.htaccess在「指定目錄」執行以下操作:
RewriteEngine On
RewriteBase /specific-directory
RewriteRule ^(.*)\.html$ $1 [R=301,L]