2013-11-04 133 views
2

我想使用一/一个地址重定向的地址在.htaccess:重定向301与/

mywebsite.com/img-41/ 

到另一个不带/:

mywebsite.com/img-41 

当然41是可变。 我尝试这样做:

RewriteRule ^img-([0-9]*)/$ /img-$1 [L,R=301,NC] 

但它不提前工作:(

能否请你帮我 谢谢,卢卡斯

编辑:? SETENV PHP_VER 5_TEST SETENV REGISTER_GLOBALS 0

Options +FollowSymlinks 
# Activation du module de réécriture d'URL : 
RewriteEngine on 
RewriteRule ^img-([0-9]*)$ img.php?&numlsv=$1 [L] 
RewriteRule ^img-([0-9]*)/$ img.php?&numlsv=$1 [L] 

RewriteRule ^home-([0-9]*)-([a-zA-Z0-9]*)$ index.php?&numpage=$1&auteur=$2 [L] 
RewriteRule ^home-([0-9]*)$ index.php?&numpage=$1 [L] 


RewriteRule ^img-([0-9]*)/$ /img-$1 [L,R=301,NC] 

Rewritecond %{HTTP_HOST} ^www.mywebsite.com$ 
Rewriterule ^(.*) http://mywebsite.com/$1 [QSA,L,R=301] 
RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /index\.php\ HTTP/ 
RewriteRule ^index\.php$/[R=301,L] 
SetEnv SESSION_USE_TRANS_SID 0 

这是整个.htaccess。

当我说它不起作用,我的意思是,当我用斜线去我的地址,导航器停留在这个地址,它不会去没有斜杠地址:(

+0

在你的问题请提供您完整的.htaccess。 – anubhava

+0

“不起作用”是什么意思?它会把你带到一个错误的地方吗?你有错误吗?你是否被重新定向*回到*后面的斜线? –

+0

当我说它不起作用,我的意思是,当我用斜线去我的地址,导航器停留在这个地址,它不会去没有斜杠的地址:( – lucasfoufou

回答

1

尝试添加重写基地这样

RewriteBase/
RewriteRule ^img-([0-9]+)/$ img-$1 [L,R=301,NC] 
+0

RewriteBase必须在你的“RewriteEngine On”语句后设置 – allupaku

+0

奇妙的是,它的工作非常感谢! – lucasfoufou

0

你重写规则只重定向与img

尝试添加/这样开始的请求:

RewriteRule ^/img-([0-9]*)/$ /img-$1 [L,R=301,NC] 

我你的编辑之前说, 您已经THI之前进行内部重定向有一个L标志s的线路

Options +FollowSymlinks 
# Activation du module de réécriture d'URL : 
RewriteEngine on 
RewriteRule ^img-([0-9]*)/$ /img-$1 [L,R=301,NC] 
RewriteRule ^img-([0-9]*)/$ img.php?&numlsv=$1 [L] 

RewriteRule ^home-([0-9]*)-([a-zA-Z0-9]*)$ index.php?&numpage=$1&auteur=$2 [L] 
RewriteRule ^home-([0-9]*)$ index.php?&numpage=$1 [L] 


Rewritecond %{HTTP_HOST} ^www.mywebsite.com$ 
Rewriterule ^(.*) http://mywebsite.com/$1 [QSA,L,R=301] 
RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /index\.php\ HTTP/ 
RewriteRule ^index\.php$/[R=301,L] 
SetEnv SESSION_USE_TRANS_SID 0 
+0

它仍然没有工作(不重定向),对不起:( – lucasfoufou

0

顺序是有意义的,当涉及到规则,你有规则之前映射你想匹配模式规则做重定向。因此,重定向从不发生,URI已经改变!

RewriteRule ^img-([0-9]*)$ img.php?&numlsv=$1 [L] 
RewriteRule ^img-([0-9]*)/$ img.php?&numlsv=$1 [L] 

RewriteRule ^home-([0-9]*)-([a-zA-Z0-9]*)$ index.php?&numpage=$1&auteur=$2 [L] 
RewriteRule ^home-([0-9]*)$ index.php?&numpage=$1 [L] 


RewriteRule ^img-([0-9]*)/$ /img-$1 [L,R=301,NC] 

在这里,第二个规则:

RewriteRule ^img-([0-9]*)/$ img.php?&numlsv=$1 [L] 

具有完全相同的图案,你的最后一条规则:

RewriteRule ^img-([0-9]*)/$ /img-$1 [L,R=301,NC] 

因此,第一条规则相匹配,并在最后一条规则会永远不会被应用。您总是首先要您的重定向:

Options +FollowSymlinks 
# Activation du module de réécriture d'URL : 
RewriteEngine on 
RewriteRule ^img-([0-9]*)/$ /img-$1 [L,R=301,NC] 

Rewritecond %{HTTP_HOST} ^www.mywebsite.com$ 
Rewriterule ^(.*) http://mywebsite.com/$1 [QSA,L,R=301] 
RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /index\.php\ HTTP/ 
RewriteRule ^index\.php$/[R=301,L] 

RewriteRule ^img-([0-9]*)$ img.php?&numlsv=$1 [L] 
RewriteRule ^img-([0-9]*)/$ img.php?&numlsv=$1 [L] 

RewriteRule ^home-([0-9]*)-([a-zA-Z0-9]*)$ index.php?&numpage=$1&auteur=$2 [L] 
RewriteRule ^home-([0-9]*)$ index.php?&numpage=$1 [L]