2013-06-04 113 views
10

我想链接到的网页我的网站里面,例如: 不:mywebsite.com/about.html但是:mywebsite.com/about/如何链接到没有.html扩展名的页面?

我见过各种网站这样做,但它看起来像他们也有不同的反应:

Apple.com: apple.com/iphone/ works,apple.com/iphone/index.html works,apple.com/iphone redirects。

Opera.com: opera.com/mobile/重定向,opera.com/mobile作品,opera.com/mobile.html不工作。

Mozilla.com: mozilla.org/en-US/工作,mozilla.org/en-US重定向,mozilla.org/en-US/index.html不工作。

这导致了另一个问题:是否有不同的方法呢?

编辑: 看来,苹果公司每个页面使用一个文件夹,例如,一个名为'iphone'的文件夹,里面有一个index.html文件? 但Opera和Mozilla在.htaccess文件中使用某些东西?

+0

检出.htaccess – Matheno

+2

这就是所谓的URL重写...现在,这是你的出发点,去阅读:-) –

回答

6

他们正在使用.htaccessURL rewriting。这是服务器配置的一部分。你不能只用html。

这个page解释了URL重写的基础知识。

+0

在.htaccess文件中的URL重写吗?它们都使用不同的.htaccess和/或URL重写的东西? – user2451987

+0

是的,你可以在你的.htaccess中定义alising规则,有很多网站在处理这个问题,看看@ Marijke的好例子 – ibi0tux

5

您的文件夹然后必须包含一个文件:index.*。 像:/iphone/index.html,它可以是/ iphone /以及

或工作与.htaccess

+1

什么是更好的使用方法?比其他更稳定吗? – user2451987

+1

取决于目的,如果您希望通过foo.com/folder/访问您的站点,您可能需要使用'index。*',因为它更简单,更简单。 – mutex36

10

删除扩展

要从例如yoursite一个PHP文件扩展名.php。 COM/wallpaper.php到yoursite.com/wallpaper你必须添加.htaccess文件中下面的代码:

RewriteEngine On 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteRule ^([^\.]+)$ $1.php [NC,L] 

如果你想从例如yoursite.com/一个HTML文件中删除.html扩展wallp aper.html到yoursite.com/wallpaper你只需要改变从上面的代码的最后一行到文件名匹配:

RewriteRule ^([^\.]+)$ $1.html [NC,L] 

这就是它!您现在可以链接HTML文档中的页面,而无需添加页面的扩展名。例如:

<a href="http://whatever.com/wallpaper" title="wallpaper">wallpaper</a> 
0

在您的网站根目录下的.htaccess文件只需添加以下行:

# ---- Render pages without urls 
Options +MultiViews 
1

让您的href属性等于要链接或网页。如果您需要 上移一个目录。

例如:href =“contact.html” 例如:href =“../ links/contact。html“

相关问题