簡體   English   中英

.htaccess搜索引擎和用戶友好網址

[英].htaccess Search Engine & User Friendly URL's

網站結構:

  • 網站根
    • /桌面/ -適用於domain.com上顯示的所有內容
    • / Mobile / -適用於m.domain.com上的所有內容
    • / Admin / -對於在admin.domain.com上看到的所有內容

.htaccess

RewriteEngine On
Options FollowSymLinks
RewriteRule ^([-_a-zA-Z0-9]*)/([-_a-zA-Z0-9]*)/([-_a-zA-Z0-9]*)$ $1.php?id=$2&name=$3

我嘗試將其放置在SITE ROOT/Desktop/

問題

我已經建立了一個測試頁面domain.com/company.php ,其中僅包含<h1>Hello World</h1>

轉到: http : //domain.com/company.php?company_id=74&name=DesignSourceLtd

“ Hello World”顯示

轉到: http : //domain.com/company/74/DesignSourceLtd

顯示404頁。

問題(S)

如何讓我的網址搜索引擎和用戶友好的所有前面的“頁” company顯示company.php模板?

解決方案1

您可以像這樣創建.htaccess文件來處理index.php中的所有URI(這樣您就可以根據需要處理任何參數和其他好處):

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond &{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/$1 [QSA,NC,L]

並使用explode('/',$_SERVER['REQUEST_URI'])訪問參數,您可以包含company.php

解決方案2

您可以為company.php創建一個特殊的句柄

Options +FollowSymLinks
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond &{REQUEST_FILENAME} !-d
RewriteRule ^company\/([-_a-zA-Z0-9]*)\/([-_a-zA-Z0-9]*)$ company.php?company_id=$1&name=$2[QSA,NC,L]

解決方案2不能捕獲第一個url參數,因為您的GET查詢對於company.php來說是特殊的

您的選項應為Options +FollowSymLinks但是不確定是否會影響結果。 您的正斜線也應轉義。 嘗試regex101.com進行測試。

參見https://regex101.com/r/PQpiLt/1

暫無
暫無

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

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