2015-05-25 98 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] 
相关问题