我认为这是一个非常简单的问题。
如何重写apache以隐藏文件夹。
EX:www.website.com/pages/login.php至www.website.com/login.php
或www.website.com/pages/home.php至www.website.com/home.php
该文件夹总是需要隐藏。感谢
答案 0 :(得分:12)
我假设您想要的是浏览器请求/home.php,但服务器实际使用位于/pages/home.php的文件,对吧?如果是这样,这应该有效:
确保已安装apache mod_rewrite模块。然后,在apache配置,虚拟主机配置或(不太理想的).htaccess文件中使用类似的东西:
RewriteEngine On
RewriteRule ^/(.*)$ /pages/$1
规则使用正则表达式,因此如果您不确定,可能需要查看该主题的参考。阅读manual以获取有关其他指令的更多信息(RewriteCond可能非常有用)或规则选项。
答案 1 :(得分:8)
我知道这里的原帖是几年前发布的,但它已经在搜索引擎中首先出现了,所以这可能会帮助其他人想要在URL中隐藏文件夹名称。
不完全是原始海报想要的,但也是如此。
RewriteCond %{HTTP_HOST} ^mydomainname\.com$ [OR]
RewriteCond %{HTTP_HOST} ^www\.mydomainname\.com$
RewriteCond %{REQUEST_URI} !^/subfoldername/
RewriteRule (.*) /subfoldername/$1
上面的示例会将对mydomainname.com或www.mydomainname.com的任何请求重定向到域根目录中的subfoldername目录,子文件夹名称不会出现在URL中。
答案 2 :(得分:0)
如果您的示例实际反映了您需要的文件,则在.htaccess文件中:
#Options +FollowSymLinks
RewriteEngine On
RewriteRule ^/pages/(.+)\.php $1\.php [NC, L]
此外,如果目录具有读取权限,则实际上不能“隐藏”。我认为你的意思是它不再出现在网址中。