我的网站是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页面?
答案 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]