我想更改此網址:
example.com/services-details.php?service_id=1
到:
example.com/services-details/1
這是.htaccess檔案的代碼
Options FollowSymLinks -MultiViews
RewriteEngine On
#SEO FRIENDLY URL
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([a-zA-Z0-9_-] )$ services-details.php?service_id=$1
更新(固定)
第 1 步:
將此代碼添加到您的.htaccess檔案中
Options FollowSymLinks -MultiViews
RewriteEngine On
# SEO FRIENDLY URL
# Redirect "/services-details.php?service_id=<num>" to "/services-details/<num>"
RewriteCond %{ENV:REDIRECT_STATUS} ^$
RewriteCond %{QUERY_STRING} ^service_id=(\d )$
RewriteRule ^(services-details)\.php$ /$1/%1 [QSD,R=301,L]
# Rewrite "/services-details/<num>" back to "services-details.php?service_id=<num>"
RewriteRule ^(services-details)/(\d )$ $1.php?service_id=$2 [L]
第 2 步: 在 ` HTML 元素中添加此代碼(在頂部)
<base href="/">
在執行以下步驟后,它應該可以作業。
資訊
不要忘記更改鏈接名稱services-details!
uj5u.com熱心網友回復:
RewriteRule ^([a-zA-Z0-9_-] )$ services-details.php?service_id=$1
RewriteRule 模式(即。^([a-zA-Z0-9_-] )$)只匹配一個路徑段,而請求的 URL 有兩個,即。/services-details/1- 你需要匹配service-details。
我假設service_id總是數字。
例如:
Options FollowSymLinks -MultiViews
RewriteEngine On
# SEO FRIENDLY URL
RewriteRule ^(services-details)/(\d )$ $1.php?service_id=$2 [L]
由于您正在重寫相同的內容,因此您不妨捕獲service-details以避免重復。
似乎不需要檔案系統檢查,因為我不認為/services-details/<number>要匹配檔案或目錄?
請注意,如果您正在更改現有 URL 結構,其中舊 URL 已被搜索引擎索引或由第三方鏈接,那么您還應該實施從舊 URL(即。/services-details.php?service_id=<number>)到新 URL(即。/services-details/<number>)的 301 重定向為了保護SEO。
例如,下面的“重定向”需要在現有的“重寫”(上圖)之前:
RewriteCond %{ENV:REDIRECT_STATUS} ^$
RewriteCond %{QUERY_STRING} ^service_id=(\d )$
RewriteRule ^(services-details)\.php$ /$1/%1 [QSD,R=301,L]
需要該QSD標志才能從重定向回應中洗掉原始查詢字串。
概括
您的.htaccess檔案應如下所示,并結合以下規則:
Options FollowSymLinks -MultiViews
RewriteEngine On
# SEO FRIENDLY URL
# Redirect "/services-details.php?service_id=<num>" to "/services-details/<num>"
RewriteCond %{ENV:REDIRECT_STATUS} ^$
RewriteCond %{QUERY_STRING} ^service_id=(\d )$
RewriteRule ^(services-details)\.php$ /$1/%1 [QSD,R=301,L]
# Rewrite "/services-details/<num>" back to "services-details.php?service_id=<num>"
RewriteRule ^(services-details)/(\d )$ $1.php?service_id=$2 [L]
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/463133.html
