2

我想用 / 重定向地址:

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。

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

4

3 回答 3

1

尝试添加这样的重写基础

RewriteBase /
RewriteRule ^img-([0-9]+)/$ img-$1 [L,R=301,NC]
于 2013-11-04T22:13:54.320 回答
0

您的重写规则仅重定向以img

尝试添加/这样的:

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

我在您编辑之前回复,您已经在此行之前执行了带有 L 标志的内部重定向

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
于 2013-11-04T22:11:13.947 回答
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]
于 2013-11-04T22:24:13.790 回答