我有一个棘手的htaccess问题,我似乎无法弄清楚
webapp是用/ 2 /
编写的我们之前重写了/ card /到/ 2 /更漂亮的网址
现在我们正在重写/ ss-card /到/ 2 /以获得更明确定义的URL
然而/ 2 /仍然可以访问,我们希望/ 2 /重定向到/ ss-card /并且我所做的尝试已经在重定向循环中结束
我的问题是,这甚至可能吗?
这是我的代码
RewriteEngine on
RewriteBase /
RewriteCond %{REQUEST_URI} !^/ss-card
RewriteCond %{REQUEST_URI} !^/2
Redirect 301 /card /ss-card
Redirect 301 /card/ /ss-card/
RewriteRule ^(.*)$ /ss-card/$1 [R=302,L,NC]
RewriteRule ^ss-card/card$ /ss-card/ [R=302,L,NC]
RewriteRule ^ss-card/card/$ /ss-card/ [R=302,L,NC]
RewriteRule ^ss-card/card/(.*)$ /ss-card/$1 [R=302,L,NC]
RewriteRule ^card$ /ss-card/ [R=302,L,NC]
RewriteRule ^card/?$ /ss-card/ [R=302,L,NC]
RewriteRule ^ss-card$ /2/ [L,NC]
RewriteRule ^ss-card/?$ /2/ [L,NC]
RewriteRule ^ss-card/(.*)$ /2/$1 [L,NC]
答案 0 :(得分:1)
尝试检查/2/
变量中的%{THE_REQUEST}
:
RewriteEngine on
RewriteBase /
RewriteCond %{THE_REQUEST} \ /+2/
RewriteRule ^2/(.*)$ /ss-card/$1 [L,R=301]
Redirect 301 /card /ss-card
Redirect 301 /card/ /ss-card/
RewriteCond %{REQUEST_URI} !^/ss-card
RewriteCond %{REQUEST_URI} !^/2
RewriteRule ^(.*)$ /ss-card/$1 [R=302,L,NC]
RewriteRule ^ss-card/card$ /ss-card/ [R=302,L,NC]
RewriteRule ^ss-card/card/$ /ss-card/ [R=302,L,NC]
RewriteRule ^ss-card/card/(.*)$ /ss-card/$1 [R=302,L,NC]
RewriteRule ^card$ /ss-card/ [R=302,L,NC]
RewriteRule ^card/?$ /ss-card/ [R=302,L,NC]
RewriteRule ^ss-card$ /2/ [L,NC]
RewriteRule ^ss-card/?$ /2/ [L,NC]
RewriteRule ^ ss-card /(.*)$ / 2 / $ 1 [L,NC]