2012-03-02 56 views
1

在我的網站,我有一些網頁以這種方式構成:的.htaccess和301重定向(動態網頁)

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

我寫了一個在被重寫網頁這樣我的.htaccess文件規則:

www.mysite.com/xy/z現在

,因爲我得到了一些SEO問題,這些網址,我想我的.htaccess文件301重定向這兩個網址(www.mysite.com/x/y.php?query=z和www.mysite.com/xy/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

現在我要301重定向都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的新手,我非常感謝你的幫助。

提前感謝和問候來自意大利

+0

當我說「我能做些什麼這個」我的意思是「我怎樣才能做到這一點」 ... - ) – 2012-03-02 06:52:19

回答

1

使用此代碼:

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] 
+0

非常感謝anubhava,但是這段代碼在我的網站上無法正常工作 – 2012-03-02 13:19:57

+0

請提供一些更詳細的信息,例如您嘗試過哪些URL無效。你有什麼錯誤等 – anubhava 2012-03-02 14:21:50

+0

嗨,正如我在我的第一篇文章中寫道,我需要301重定向我的網站中的一些網頁。我有例如在一些網頁是這樣的: www.mysite.com/dir/subdir/page.php?titolo=foo 這是現在這樣寫的(我用我之前發佈的代碼): WWW .mysite.com/dir/subdir-page/foo 現在我想301重定向www.mysite.com/dir/subdir/page.php?titolo=foo和www.mysite.com/dir/subdir-page /富到這: www.mysite.com/dir/subdir-page/foo。html 我把我的htaccess放在「dir」文件夾中。然而,你給我的代碼沒有工作,我很抱歉...我很感激你的幫助。謝謝 – 2012-03-02 14:41:00