我尝试使用 .htaccess 从浏览器的 URL 栏中隐藏两个文件夹,并且只需要输入视图文件的名称
对于那个用途
RewriteRule ^(.*)$ resources/view/ [NC]
RewriteCond %{REQUEST_FILENAME}.php -f
RewriteRule ^(.*)$ $1.php [NC]
RewriteCond %{REQUEST_FILENAME}.view.php -f
RewriteRule ^(.*)$ $1.view.php [NC]
问题是它对我不起作用,它将视图文件视为文件夹目录:
这是我的项目的结构:
现在,我正在寻找的是 URL 忽略了资源/视图/文件夹,并且当我将文件名放在 URL 中时,它会向我显示视图。正如我在上面首先发布的图片中一样,URL 显示我输入了“php.devel.com/test/php_tests/blog/profile”,该 URL 应该显示视图 profile.view.php。
我还配置了 .htaccess 以便它忽略 .view.php 或 .php 文件的扩展名,这就是为什么我只将没有扩展名的配置文件放在 URL 中
此设置适用于指向
public_html
.注意:通过取消注释该行
LogLevel
,您可以在错误日志中看到 Apache 如何解决重写问题。他
.htaccess
在public_html
.第一个条件是在没有初始请求的情况下获取
%1
请求 uri 。 第二个条件检查没有初始请求 uri 的请求 uri 作为文件存在于子文件夹中虚拟服务器的文档根目录中。'/'
'/'
.view.php
resources/view
如果满足这个条件,它会重写 url。
测试的结构:
调用
http://test.localhost.com/perfil
显示resources/view/perfil.php
. 与 相同index
。您需要捕获视图的名称:
RewriteRule .*/(.*)$ resources/view/$1.view.php [L]
该指令
RewriteCond
仅用于知道规则是否被评估,因此并不总是必要的。