2017-06-15 31 views
1

我在URL重寫時遇到了一些問題。htaccess規則在一種情況下失敗

我寫的規則沒有基本密鑰象下面這樣: -

RewriteRule ^en/([\w-]+)/([\w-=]+)/([\w-=]+)/([\w-=]+)$ landing.php?n=$1&p=$2&c=$3&k=$4 [QSA,L] 

RewriteRule ^([\w-]+)/([\w-=]+)/([\w-=]+)/([\w-=]+)$ landing.php?n=$1&p=$2&c=$3&k=$4 [QSA,L] 

我有如下網址: -

http://localhost/site/en/video/vi/ca/key //en URL 
http://localhost/site/video/vi/ca/key //normal URL 

以上兩個網址是工作的罰款。

但低於URL創建問題,這不應該工作

http://localhost/site/en/video/ca/key 

連接網址,工作像正常的網址。這是第二條規則。這裏的第一條規則不起作用。 GET [ 'N']顯示N = EN但這不應該工作因爲沒有在這裏提出或這應該是N =視頻

請檢查並引導我。

在此先感謝。

回答

1

你必須在你剛開始添加RewriteBase htaccess的像下面

RewriteBase /site/ 

RewriteRule ^en/(([\w-]+)\/){1,4} landing.php?n=$1&p=$2&c=$3&k=$4 [QSA,L] 

RewriteRule ^([\w-]+)/([\w-=]+)/([\w-=]+)/([\w-=]+)$ landing.php?n=$1&p=$2&c=$3&k=$4 [QSA,L] 
+0

我已經加在 RewriteBase /網站選項+的FollowSymLinks RewriteEngine敘述 / 選項-Indexes –

+0

請了解你自己的規則。 http:// localhost/site/en/video/ca /​​ key肯定會匹配 'RewriteRule ^([\ w - ] +)/([\ w - =] +)/([\ w- = [+] +)/([\ w - =] +)$ landing.php?n = $ 1&p = $ 2&c = $ 3&k = $ 4 [QSA,L]'因爲它有4個匹配組。看到這些是4個匹配1 = en,2 =視頻,3 = ca,4 =鍵。所以你的網址是'http://localhost/site/landing.php?n = en&p = video&c = ca&k = key 由於你的RewriteRule選項中的L,測試會停止。 。 –

+0

是的,這是個問題。我該如何解決這個問題? –

相關問題