2017-05-08 53 views
3

我當前的URL結構是:如何使用重寫規則URL 301重定向

RewriteRule ^([^/]*)_([^/]*).uz$ postview.php?url=$1&authorurl=$2 [L] 

現在我想,而不是使用下劃線斜線,如:

RewriteRule ^([^/]*)/([^/]*).uz$ postview.php?url=$1&authorurl=$2 [L] 

我如何可以重定向我的舊網址新的網址?

我試過這樣的,

Redirect 301 ^([^/]*)_([^/]*).uz$ ^([^/]*)/([^/]*).uz$ 

不工作。

回答

1

在您的Redirect規則中,您在源網址和目標網址中均使用正則表達式模式,此外,Redirect甚至不接受正則表達式。

您可以使用所有mod_rewrite規則做這樣的:

RewriteEngine On 
RewriteBase /site/ 

RewriteRule ^([^_]*)_([^.]+\.uz)$ $1/$2 [L,NC,R=301,NE] 
RewriteRule ^([^/]+)/([^.]+)\.uz$ postview.php?url=$1&authorurl=$2 [L,NC,QSA] 
+0

小問題,它被重定向到根文件夾不是當前。例如:'localhost/site/title_author.uz'重定向到'localhost/title/author.uz'我該如何解決這個問題? – Elyor

+0

清除瀏覽器緩存後嘗試更新我的規則。 – anubhava

1

嘗試用下面也

RewriteEngine On 
RewriteCond %{REQUEST_URI} ^([^/]+)_([^/]+).uz$ 
RewriteRule^%1/%2.uz [R=301,L] 

RewriteCond %{REQUEST_URI} ^([^/]+)/([^/]+).uz$ 
RewriteRule^postview.php?url=%1&authorurl=%2 [L]