使用 .htaccess 服务 index.html 或 index.php
Posted
技术标签:
【中文标题】使用 .htaccess 服务 index.html 或 index.php【英文标题】:using .htaccess to serve index.html or index.php 【发布时间】:2011-07-31 06:15:15 【问题描述】:如果直接访问网站(无参数),我想使用.htaccess文件返回主页(index.html),如果是其他链接,我想使用index.php/subdirectories/..
示例:
my_site.com 显示 index.html
my_site.com/dir1/dir2/ 必须重定向到 index.php,参数为 dir1/dir2..
请帮助创建这个 .htaccess 文件
我在现有文件中有这个:
重写引擎开启
重写规则 ^(.*)(.html|.htm)$ index.php [L]
RewriteCond %REQUEST_FILENAME !-f
RewriteCond %REQUEST_FILENAME !-d
重写规则 ^(.*)/?$ index.php [L]
我想对进入站点时提供的 index.html 文件做例外处理
提前致谢
【问题讨论】:
【参考方案1】:在您的 .htaccess 文件中尝试这些规则:
RewriteEngine on
Options +FollowSymlinks -MultiViews
# to redirect my.site.com to my.site.com/index.html
RewriteRule ^$ /index.html [R,L]
# to redirect /dir1/dir2 to index.php?url=dir1/dir2
RewriteCond %REQUEST_FILENAME !-d
RewriteCond %QUERY_STRING !^url=
RewriteRule ^([^/]+)/([^/]+)/?$ /index.php?url=$1/$2 [R,L,QSA]
【讨论】:
谢谢,它在一台服务器上工作,但在另一台服务器上却不工作 mod_rewrite 已安装好并且在两台服务器上工作正常,我无法验证第一台服务器中的 apache(其中 .htaccess 工作正常),因为它不是专用服务器,但它可以正常工作.我只需要更正第二个 .htaccess(专用服务器)以允许执行 index.html if(mysite.com 或 mysite.com/index.html),并对所有其他文件和目录(mysite.com)执行 index.php /page1.html mysite.com/all_directories/../../, mysite.com/all_directories/index.html .....),请帮忙 yes RewriteRule ^$ /index.html [R,L] 在第二台计算机上不起作用,它提供来自 index.php 的内容 @aubhava,.htaccess 在第二台服务器上工作,但默认情况下它不提供 index.html 文件在 my_site.com 它执行 index.php 谢谢,是的,这是apache配置中的命令,但是在更正并重新启动apache后,它将my_site.com重定向到my_site.com/index.htmlindex.php并显示主页,my_site.com /index.html 显示 index.html 文件的真实内容。这是我的 .htaccess 的内容:RewriteEngine On RewriteRule ^/index.html$ index.html [C] RewriteRule ^(.*)(\.html|\.htm)$ index.php [L] RewriteCond %REQUEST_FILENAME !-f RewriteCond %REQUEST_FILENAME !-d RewriteRule ^(.*)/?$ index.php [L]
【参考方案2】:
如果你只有 html,你也可以这样使用。
<IfModule mod_rewrite.c>
RewriteEngine on
Options +FollowSymlinks -MultiViews
RewriteRule ^$ /index.html [R,L]
</IfModule>
【讨论】:
以上是关于使用 .htaccess 服务 index.html 或 index.php的主要内容,如果未能解决你的问题,请参考以下文章
.htaccess 用于具有 HTML5 模式的 AngularJS 应用程序的子文件夹