首先,我想告知这是我关于堆栈溢出的第一篇文章,所以如果我做错了,我也想让我知道。
我正在尝试构建包含控制器和模板等文件夹的PHP脚本。两者都是重定向和包含需要的PHP文件在其中的一个或另一个。一切都可以通过根域目录上的索引访问。所以我的问题是如何隐藏网址,domain.com/"controller"/activate.php
或domain.com/"templates"/login.php
。
我告诉你我在里面打电话给login.php
"模板"文件夹中包含索引中的一些参数(if
)。
我现在将发布我的.htaccess
,以便您可以查看该过程,而我已经尝试隐藏"模板"过去的文件夹。但是,通过编码.htaccess,不再可以访问子目录了。这就是我必须删除代码的原因,因为这些代码不能解决我的问题。
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteBase /
ErrorDocument 404 /templates/404
# To externally redirect /dir/abc.php to /dir/abc
RewriteCond %{THE_REQUEST} ^[A-Z]{3,}\s/+(.+?)\.php[\s?] [NC]
RewriteRule ^ /%1 [R=301,L,NE]
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}.php -f
RewriteRule ^(.+?)/?$ $1.php [QSA,NC,L]
</IfModule>
AddOutputFilterByType DEFLATE text / text text / html text / plain text / xml text / css application / x-javascript application / javascript
到目前为止,我的.htaccess具有在url和cache-Gzip压缩方法上隐藏.php扩展名的参数。所有帮助都会欣赏它,错误和正确!
答案 0 :(得分:0)
所以,如果我没有错,你会得到类似basepath / ControllerName / Method的东西,你想要隐藏ControllerName部分吗? 在我看来,使用MVC玩url / friendlyurl只是保持一个相对基本的htaccess像
single p = lookupFirst
where
lookupFirst [] = False
lookupFirst (x:xs) | p x = lookupSecond xs
| otherwise = lookupFirst xs
lookupSecond [] = True
lookupSecond (x:xs) | p x = False
| otherwise = lookupSecond xs
你可以通过一个简单的&#34;路由&#34;做你想做的事。配置:
例如:
获取网址和重定向的路由类
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /smw/
# Allow any files or directories that exist to be displayed directly
RewriteCond %{REQUEST_FILENAME} !-f
#RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?$1 [QSA,L]
希望它有所帮助!告诉我你是否需要更多信息