簡體   English   中英

特定格式的URL重寫規則

[英]URL Rewrite Rules in specific format

我為URL編寫了一個.htaccess文件以進行重寫,但是由於它無法提供所需的輸出而導致了一些錯誤,需要一些專家的意見/結果才能正確進行。

這是我要重寫的URL

http://theyouthtalent.com/user-wall.php?User=dillagiary&Talent=TV

應該重寫為

http://theyouthtalent.com/TV/dillagiary

我現有的.htaccess文件有以下幾行

RewriteEngine On

RewriteCond %{THE_REQUEST} /user_wall\.php [NC]
RewriteCond %{QUERY_STRING} ^User=(\w+)&Talent=(\w+)$ [NC]
RewriteRule ^user_wall\.php$ /%2/%1? [R=301,L,NE]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(\w+)/(\w+)/?$ user_wall.php?User=$2&Talent=$1 [L,QSA]

重要的一點是,我想先選拔人才,然后再選擇用戶名

 http://theyouthtalent.com/user-wall.php?User=dillagiary&Talent=TV 

Talent查詢字符串參數值包含一個點( . ),但是速記字符類\\w (單詞字符)不包含一個點。 因此,您需要在模式中包含一個點。 即。 將相關的(\\w+)模式更改為([\\w.]+)

此外,請求URL包含連字符( - ),而不包含下划線( _ )。

例如:

RewriteCond %{THE_REQUEST} /user-wall\.php [NC]
RewriteCond %{QUERY_STRING} ^User=(\w+)&Talent=([\w.]+)$ [NC]
RewriteRule ^user_wall\.php$ /%2/%1? [R=301,L,NE]

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([\w.]+)/(\w+)/?$ user_wall.php?User=$2&Talent=$1 [L,QSA]

\\w字符類本身等效於: [A-Za-z0-9_]

暫無
暫無

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

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