2015-05-25 134 views
0

我的網站是在php中。當我打開沒有任何擴展名的網址時,我想重定向到其原始擴展頁面。 例如:當用戶鍵入follwoing網址如何將非擴展名重定向到擴展頁

www.abc.com/contact

我想重定向到原來的頁面

www.abc.com/contact.html

在htaccess的我想這

RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_FILENAME}\.html -f 
RewriteRule ^(.+)$ $1.html [L,QSA] 

但是,這是不重定向。這只是刪除HTML。

所以問題是:當用戶沒有輸入文件擴展名時,如何重定向到.html頁面?

回答

0

試試下面的.htaccess代碼:

Redirect 301 /contact www.abc.com/contact.html 

多個文件只是嘗試下面的代碼:

RewriteEngine On 
RewriteCond %{REQUEST_URI} !\.[a-zA-Z0-9]{3,4} 
RewriteCond %{REQUEST_URI} !/$ 
RewriteRule ^(.*)$ $1.html 
+0

不是一個單一的頁面。我有這麼多頁面。 – venkyrao

+0

在htaccess中是否有動態編碼? – venkyrao

+0

沒有通過「動態」代碼獲得?我們必須給出規則以使其發生 – tharif

0
Options +FollowSymLinks -MultiViews 

# Turn mod_rewrite on 
RewriteEngine On 
RewriteBase/

RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_FILENAME}\.html -f 
RewriteRule ^(.+)$ $1.html [L,QSA] 

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

## hide .html extension 
# To externally redirect /dir/foo.php to /dir/foo 
RewriteCond %{THE_REQUEST} ^[A-Z]{3,}\s([^.]+)\.html[NC] 
RewriteRule^%1 [R,L,NC] 

## To internally redirect /dir/foo to /dir/foo.html 
RewriteCond %{REQUEST_FILENAME}.html -f 
RewriteRule^%{REQUEST_URI}.html[L] 
相關問題