1

如果我想让所有请求始终加载核心模板选择文件,我将如何配置我的.htaccess文件。我认为这可能有一些好处,其中一个原因是安全性。只有当我的php模板选择代码将文件标记为安全显示时,它才会显示。此外,它允许我构建一些有趣的cms功能,如需要php元数据数组以加载模板文件。我怎么能做到这一点?.htaccess重定向到一个模板选择php文件

另外,你认为选择这种方法比其他方法更实用吗?

+0

什么是模板选择URL,您希望一切都被重写? – anubhava 2014-10-16 21:14:18

+0

@anubhava,'core/template.php' – Calebmer 2014-10-16 21:16:43

回答

1

您还可以使用t他在你的根的.htaccess规则,使core/template.php前端控制器:

RewriteEngine on 
RewriteBase/

RewriteRule ^core/template\.php$ - [L,NC] 

RewriteCond %{REQUEST_FILENAME} !-f 
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule . core/template.php [L] 

编辑:如果你想即使是真实的文件被路由到相同的控制器使用的最后一条规则为:

RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule !\.(jpe?g|ico|gif|bmp|png|tiff|css|js)$ core/template.php [L,NC] 
+0

这个问题有一个问题,如果test.php存在,我导航到test.php在我的浏览器中,text.php加载,而不是核心/ template.php – Calebmer 2014-10-16 21:30:13

+0

你真的要'core/template.php'加载为真正的文件呢?如果请求来自css或js文件,该怎么办? – anubhava 2014-10-16 21:31:07

+0

诚然,感谢您提供解决方法 – Calebmer 2014-10-16 21:44:46

0
<IfModule mod_rewrite.c> 
    RewriteEngine on 
    RewriteBase/
    RewriteRule ^(.*)$ /index.php 
</IfModule> 

确保在httpd.conf内该行没有评论说:

LoadModule rewrite_module modules/mod_rewrite.so 

(应该是没有的开头“#”) 这是我目录标签(我使用WAMP,但它应该是相同的,当然,如果你改变的东西有重新启动Apache服务器)

<Directory /> 
    Options FollowSymLinks 
    AllowOverride All 
    Order deny,allow 
    Allow from all 
</Directory> 
+1

没有工作,它给了我一个内部的500服务器错误。我尝试过,没有IfModule也不确定这是否会有所作为。 – Calebmer 2014-10-16 21:15:37

+0

你使用的是wamp吗? – Ido 2014-10-16 21:16:07

+0

我正在使用mamp – Calebmer 2014-10-16 21:17:17