2013-11-04 128 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]