2016-09-16 19 views
1

因此,我目前使用我的.htaccess來編寫我的URL,以使URL更友好。 但我無法獲得可能是更多文件夾的第四個變量。我會盡力解釋它,盡我所能。.htaccess - 用3個變量重寫,但之後得到其餘的URL

所以此刻我有以下URL的工作:

www.mysite.co.uk/first/second/third

現在,爲了這個,我現在用的是重寫規則:

RewriteRule ^e/([a-zA-Z0-9-/]*)/([a-zA-Z0-9-/]*)/([a-zA-Z0-9\-\/]*)$ index.php?var_1=$1&var_2=$2&var_3=$3 [L] 

我的問題是當以下的我一個情況:

www.mysite.co.uk/first/seco ND /第三/第四

www.mysite.co.uk/first/second/third/fourth/fifth

www.mysite.co.uk/first/second/third/fourth/第五/第六

從上面欲返回以下變量:

$ _GET [ 'VAR_1'] = 第一

$ _GET [ 'VAR_2'] = 第二

$ _GET [ 'VAR_3'] = 第三/第四

OR

$ _GET [ 'VAR_3'] = 第三/第四/第五

OR

$ _GET [「VAR_3」] = 第三/第四/第五/第六

所以基本上我總是有一個「VAR_1」和設置「VAR_2」,但該第三變量可以是URL的其餘部分。

我希望這是有道理的,這是可能的。

+0

你能做到這一點低谷PHP,解析網址:這裏 例子: http://php.net/manual/en/fu nction.parse-url.php] –

+0

嗨@DenisSolakovic感謝您的意見。這樣做可以工作,但當變量以原始格式發送時(?var_one = first),它會更好地工作。 除非我失去了一些東西。 –

+0

嗯,你可以使用.htaccess [http://stackoverflow.com/questions/7827779/htaccess-url-rewrite-with-variables],但我的其他建議是用分隔符/爆炸url參數並獲取你的網址片段... –

回答

0

我不知道爲什麼你的規則與^E/ 開始,如果您的網址將被格式:www.mysite.co.uk/ ê /第一/二/三/四 然後如果你需要它,而不/ E /在啓動www.mysite.co

RewriteRule ^e/([a-zA-Z0-9-]+)(/([a-zA-Z0-9-]+))?(/([a-zA-Z0-9-/]*))?$ index.php?var_1=$1&var_2=$3&var_3=$5 [L] 

:使用正則表達式。英國/ E /第一/第二/第三/第四
然後從開始刪除/ E /以上

RewriteRule ^([a-zA-Z0-9-]+)(/([a-zA-Z0-9-]+))?(/([a-zA-Z0-9-/]*))?$ index.php?var_1=$1&var_2=$3&var_3=$5 [L] 

實施例將工作即使URL-就像/第一/第一/第二但是,如果你不需要它,你想擁有這條規則就在3個或更多PARAMS情況,那麼你可以簡化規則:

RewriteRule ^([a-zA-Z0-9-]+)/([a-zA-Z0-9-]+)/([a-zA-Z0-9-/]+)$ index.php?var_1=$1&var_2=$2&var_3=$3 [L]