2015-12-03 60 views
0

我有一个共享主机上的静态HTML网站。 我想将这些HTML文件转换为用户友好的网址。 IE:website.com/web-design.html成为website.com/web-design/ 我使用这些规则,这样,当我要求website.com/web-design/相应的HTML文件送达:URL重写404错误,以获得用户友好的网址

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

它的工作原理,如果我在浏览器中website.com/web-design型产品(没有斜线),而是用website.com/web-design/我得到一个404错误:

The requested URL /web-design.html/ was not found on this server. 

我想这两个URL(有和没有斜线)工作... 看来,斜线是在HTML文件的末尾添加,给404一个。 我不知道如何解决它... 感谢您的帮助。

回答

0

你应该试试你的规则是这样

Options -MultiViews 
RewriteEngine On 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteRule ^([^/]+)/?$ /$1.html [L] 
+0

有了这些规则,它抛出:'请求的URL /web-design/.html是不会在这个server.' – spaceOdysseus

+0

发现尝试更新的规则和什么样的服务提供者你有吗? –

+0

这真的很奇怪:我删除了.htaccess,然而'website.com/web-design'仍然映射到'website.com/web-design.html'。它应该给出一个404错误,而不是。我无法理解...这是一家意大利公司:Aruba – spaceOdysseus