如何将非扩展名重定向到扩展名页面

时间:2015-05-25 07:49:31

标签: php .htaccess

我的网站是php。当我打开没有任何扩展名的网址时,我想重定向到其原始扩展页面。 例如:当用户键入以下URL时

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页面?

2 个答案:

答案 0 :(得分: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

答案 1 :(得分: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]