2014-05-09 42 views
0
RewriteEngine on 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteRule ^([a-zA-Z]+)/([0-9a-zA-Z-_]+)/? /pages/index.php?page_url=$2&lang=$1 [QSA,L] 
RewriteRule ^([a-zA-Z]+)/? /pages/index.php?page_url=home&lang=$1 [QSA,L] 

這兩個規則都可以正常工作,但如果我有它們,我會得到500內部服務器錯誤。htaccess第二次拋出錯誤RewriteRule

我試圖做的是site.com/en/得到了site.com/pages/index.php?page_url=home&lang=$1(以en這種情況下)

site.com/en/home/site.com/pages/index.php?page_url=$2&lang=$1(家庭和EN分別在這種情況下)

任何想法?

回答

0

由於您的規則由於錯誤的正則表達式而循環,您將得到500錯誤。

讓你的規則是這樣的:

RewriteEngine on 

RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteRule ^([a-zA-Z]+)/([\w-]+)/?$ /pages/index.php?page_url=$2&lang=$1 [QSA,L] 

RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteRule ^([a-zA-Z]+)/?$ /pages/index.php?page_url=home&lang=$1 [QSA,L] 
相關問題