2014-06-10 57 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]