2014-06-10 86 views
0

我遇到了htaccess的問題。用traling斜槓,參數等重寫URLS

這裏是我的要求:

1)頁/ PAGE(沒有尾隨斜線)## page.php文件頁= PAGE

2)頁/ PAGE/DATA(沒有尾隨斜線)? ## page.php文件?頁= PAGE &數據= DATA

3)登錄,註銷,索引(無.PHP或/)

4)頁(帶或不帶斜線)重定向到登錄(無斜線或.php)

這是我目前嘗試:

RewriteEngine On 
RewriteRule ^logout$ pages/logout.php [NC,L] 

#1 
RewriteRule ^pages/(\w+)$ page.php?page=$1 [NC,L] 
#2 
RewriteRule ^pages/(\w+)/(\w+)$ page.php?page=$1&data=$2 [NC,L] 

#3 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteRule ^([^\.]+)$ $1.php [NC,L] 

RedirectMatch 301 ^(.*)/$ $1 

的問題,這是根給了我「重定向循環」
頁面(帶或不帶尾/)給了我一個重定向循環

回答

0

有這樣的規則:

RewriteEngine On 

RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{THE_REQUEST} \s(.+?)/+[?\s] 
RewriteRule ^(.+?)/$ /$1 [R=302,L] 

RewriteRule ^logout$ pages/logout.php [NC,L] 

#1 
RewriteRule ^pages/(\w+)$ page.php?page=$1 [NC,L] 
#2 
RewriteRule ^pages/(\w+)/(\w+)$ page.php?page=$1&data=$2 [NC,L] 

#3 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteRule ^([^.]+)$ $1.php [NC,L]