如果访问者通过浏览器URL调用,则为index.php提供html文件优先级

时间:2014-08-03 19:22:59

标签: apache .htaccess joomla

我有一个joomla网站,它以一个传递页面的index.php文件开头。

但是我想要包含一个非php页面,如果有人在浏览器中输入URL时将其包含在内,将会优先发送。

例如。如果该页面是bananas.html且该人员类型为www.domainname.com/bananas,我希望该页面出现而不是任何Joomla页面。

我还想删除“html”,因此该页面显示为domainname.com/bananas(而不是www.domainname.com/bananas.html

当然,如果他们自己输入http://www.domain.com,那么joomla网站会照常显示。

我只有一个页面,我希望这种情况发生。

这里有一个关于stackoverflow的类似问题,这应该有助于参考:
Server page priorities between index.php or index.html

这是一个apache站点,我有ftp访问web根目录。所以我可以修改htacess文件。该站点位于大学服务器上,我可以让IT人员对任何服务器文件进行任何更改

感谢您提供任何帮助,

Rowby

以下是有关网站和服务器的信息: PHP构建于Linux 2.6.32-431.11.2.el6.i686#1 SMP Mon Mar 3 13:33:00 EST 2014 i686 数据库版本5.5.38-MariaDB-log 数据库整理latin1_swedish_ci PHP版本5.3.3 Web服务器Apache / 2.2.15(Red Hat) WebServer到PHP接口apache2handler 的Joomla!版本Joomla! 3.1.5稳定[Ember] 01-August-2013 14:00 GMT 的Joomla!平台版本Joomla平台12.2.0稳定[Neil Armstrong] 2012年9月21日00:00 GMT 用户代理Mozilla / 5.0(Windows NT 6.3; WOW64)AppleWebKit / 537.36(KHTML,与Gecko一样)Chrome / 36.0.1985.125 Safari / 537.3

2 个答案:

答案 0 :(得分:0)

使用Rewrite应该这样做:

RewriteRule ^香蕉/(\ d +)* $ ./bananas.html

答案 1 :(得分:0)

DirectoryIndex在这里没什么用,因为你想加载joomla,除非你有充分的理由不加载它。也就是说,当用户请求服务器上存在的文件时。您可以使用mod_rewrite(docs)完成此操作。

以下规则检查当前请求的文件是否不存在,然后检查附加了.html的当前请求文件是否存在。如果这两个都为真,则它会在内部将请求重写为该文件。这意味着在浏览器中您会看到http://example.com/bananas,而它会加载http://example.com/bananas.html。如果您请求http://example.com/,它将检查不存在的http://example.com/.html,这会导致此规则不匹配。在您的www-root中.htaccess文件中的任何其他规则之前添加此规则。

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{DOCUMENT_ROOT}%{REQUEST_URI}.html -f
RewriteRule ^ %{REQUEST_URI}.html [L]