.htaccess和301重定向(动态页面)

.htaccess和301重定向(动态页面),.htaccess,.htaccess,在我的网站中,我有一些页面的结构如下: www.mysite.com/x/y.php?query=z 我在.htaccess文件中编写了一条规则,以这种方式重写页面: www.mysite.com/x-y/z 现在,由于这些URL存在一些SEO问题,我希望我的.htaccess文件301将这两个URL(www.mysite.com/x/y.php?query=z和www.mysite.com/x-y/z)重定向到如下位置: www.mysite.com/x-y/z.html 我能做这个吗?我将向

在我的网站中,我有一些页面的结构如下:

www.mysite.com/x/y.php?query=z

我在.htaccess文件中编写了一条规则,以这种方式重写页面:

www.mysite.com/x-y/z

现在,由于这些URL存在一些SEO问题,我希望我的.htaccess文件301将这两个URL(www.mysite.com/x/y.php?query=z和www.mysite.com/x-y/z)重定向到如下位置:

www.mysite.com/x-y/z.html

我能做这个吗?我将向您发布我的.htaccess规则:

AuthType Basic 
RewriteEngine on
RewriteRule ([^/]+)-([^/]+)/([^/]+) $1/$2.php?titolo=$3 [L]
提前谢谢

来自意大利的问候


编辑


嗨,正如我在第一篇文章中所写的,我需要301重定向我网站中的一些页面。例如,我有一些这样的页面:

www.mysite.com/dir/subdir/page.php?titolo=foo

现在是这样写的(我使用的是我以前发布的代码):

www.mysite.com/dir/subdir-page/foo

现在我想将www.mysite.com/dir/subdir/page.php?titolo=foo和www.mysite.com/dir/subdir-page/foo重定向到以下位置:

www.mysite.com/dir/subdir-page/foo.html

我将htaccess放在“dir”文件夹中。但是你给我的代码不起作用,我很抱歉。。。由于我是htaccess的新手,我非常感谢您的帮助

提前向您表示感谢,并向您致意

请使用以下代码:

Options +FollowSymLinks -MultiViews
# Turn mod_rewrite on
RewriteEngine On
RewriteBase /dir

## External 301 redirects
# /dir/subdir-page/foo to /dir/subdir-page/foo.html
RewriteCond %{QUERY_STRING} ^$
RewriteCond %{REQUEST_URI} !\.html$ [NC]
RewriteRule ^ %{REQUEST_URI}.html [R=302,L]

# /dir/subdir/page.php?titolo=foo to /dir/subdir-page/foo.html
RewriteCond %{THE_REQUEST} ^[A-Z]{3,}\s/+[^/]+/([^/]+)/([^.]+)\.php\?titolo=([^\s]+)\s [NC]
RewriteRule ^ %1-%2/%3.html? [R=302,L,NC]

## Internal redirect
# /dir/subdir-page/foo.html to /dir/subdir/page.php?titolo=foo
RewriteRule ^([^-]+)-([^/]+)/([^.]+)\.html$ $1/$2.php?titolo=$3 [NC,L,QSA]
使用此代码:

Options +FollowSymLinks -MultiViews
# Turn mod_rewrite on
RewriteEngine On
RewriteBase /dir

## External 301 redirects
# /dir/subdir-page/foo to /dir/subdir-page/foo.html
RewriteCond %{QUERY_STRING} ^$
RewriteCond %{REQUEST_URI} !\.html$ [NC]
RewriteRule ^ %{REQUEST_URI}.html [R=302,L]

# /dir/subdir/page.php?titolo=foo to /dir/subdir-page/foo.html
RewriteCond %{THE_REQUEST} ^[A-Z]{3,}\s/+[^/]+/([^/]+)/([^.]+)\.php\?titolo=([^\s]+)\s [NC]
RewriteRule ^ %1-%2/%3.html? [R=302,L,NC]

## Internal redirect
# /dir/subdir-page/foo.html to /dir/subdir/page.php?titolo=foo
RewriteRule ^([^-]+)-([^/]+)/([^.]+)\.html$ $1/$2.php?titolo=$3 [NC,L,QSA]

当我写“我能做到这一点”的时候,我的意思是“我怎么能做到这一点”…-)当我写“我能做到这一点”的时候,我的意思是“我怎么能做到这一点”…-)请提供一些更多的细节,如你尝试的网址,没有工作。还有你犯了什么错误等等。嗨,正如我在第一篇博文中所写,我需要301重定向我网站上的一些页面。例如,我有一些这样的页面:www.mysite.com/dir/subdir/page.php?titolo=foo,它们现在是这样写的(我使用的是我以前发布的代码):www.mysite.com/dir/subdir-page/foo现在我想将www.mysite.com/dir/subdir/page.php?titolo=foo和www.mysite.com/dir/subdir-page/foo重定向到以下位置:www.mysite.com/dir/subdir-page/foo.html我将htaccess放在“dir”文件夹中。但是你给我的代码不起作用,我很抱歉。。。我非常感谢你的帮助。谢谢我想我更了解你的问题。现在请检查我的最新答案。谢谢阿努巴瓦,你太棒了,现在它工作得很好!然而,我想问你(如果你同意的话)我在哪里可以找到一些指南和教程来自学htaccess,因为我还有其他事情要改变,但我想学点东西,而不是总是寻求帮助。再次感谢!以下是Apache参考手册:和备忘单:适用于所有类型的示例。即使在这里有这么多的问答,也有很大的帮助。最后,请您将此答案标记为“已接受”。请提供更多详细信息,例如您尝试的哪个URL不起作用。还有你犯了什么错误等等。嗨,正如我在第一篇博文中所写,我需要301重定向我网站上的一些页面。例如,我有一些这样的页面:www.mysite.com/dir/subdir/page.php?titolo=foo,它们现在是这样写的(我使用的是我以前发布的代码):www.mysite.com/dir/subdir-page/foo现在我想将www.mysite.com/dir/subdir/page.php?titolo=foo和www.mysite.com/dir/subdir-page/foo重定向到以下位置:www.mysite.com/dir/subdir-page/foo.html我将htaccess放在“dir”文件夹中。但是你给我的代码不起作用,我很抱歉。。。我非常感谢你的帮助。谢谢我想我更了解你的问题。现在请检查我的最新答案。谢谢阿努巴瓦,你太棒了,现在它工作得很好!然而,我想问你(如果你同意的话)我在哪里可以找到一些指南和教程来自学htaccess,因为我还有其他事情要改变,但我想学点东西,而不是总是寻求帮助。再次感谢!以下是Apache参考手册:和备忘单:适用于所有类型的示例。即使在这里有这么多的问答,也有很大的帮助。最后,请您现在将此答案标记为已接受。