隐藏网址中的文件扩展名?

时间:2013-02-13 13:29:53

标签: .htaccess

有些人可以帮助我,我想在我网站的网址中隐藏文件扩展名。

所以一个例子就是 http://www.mysite.com/home.php http://www.mysite.com/control.php

将显示为 http://www.mysite.com/home http://www.mysite.com/control

我一直在调查这个,并发现这个代码似乎隐藏了网址中的文件扩展名,但现在我的链接无法工作,我得到404错误。我认为我需要修改我的网站链接路径或类似的东西。

有人可以告诉我我需要做什么,这是我在.htaccess中使用的代码:

RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}\.php -f
RewriteRule ^([^/]+)/$ $1.php
RewriteCond %{THE_REQUEST} ^[A-Z]+\ /([^/]+/)*[^.]+\.php(\?[^\ ]*)?\ HTTP/
RewriteRule ^(([^/]+/)*[^.]+)\.php$ http://www.mysite.com/$1 [R=301,L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} !(\.[a-zA-Z0-9]{1,5}|/)$
RewriteRule (.*)$ http://www.mysite.com/$1/ [R=301,L]

2 个答案:

答案 0 :(得分:0)

Google可以在堆叠前提供帮助:)

   RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}\.html -f
RewriteRule ^([^/]+)/$ $1.html 

# Forces a trailing slash to be added
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI} !(\.[a-zA-Z0-9]{1,5}|/)$
RewriteRule (.*)$ /$1/ [R=301,L]

http://eisabainyo.net/weblog/2007/08/19/removing-file-extension-via-htaccess/ 还看 Making a rewriterule remove .php extension?

答案 1 :(得分:0)

如果要隐藏所有扩展名(不仅仅是.php,.html),请使用:

Options +FollowSymLinks +MultiViews

在你的httpd.conf或.htaccess