我的网站在使用cPanel 11的主机上。
不幸的是,它将“www.e-motiv.net”和“e-motiv.net”redirect到public_html。 我想分享 public_html / www和public_html /,这对最终用户是不可见的。
我认为最好的方式是通过mod_rewrite,所以我做了以下。
文件空间看起来像这样(来自public_html /):
在重写.htaccess中保留查询string
mod_rewrite – 排除url
重写为“漂亮的url”?
Yii2 htaccess – 如何完全隐藏前端/网页和后端/网页
/.htaccess
的index.PHP
/www/index.html
/www/test/index.html
我想要这个(第二部分隐形!):
e-motiv.net – > /index.PHP
www.e-motiv.net – > /www/index.PHP
www.e-motiv.net/test – > /www/test/index.PHP
我以为这会做到这一点:
RewriteCond %{HTTP_HOST} ^www.e-motiv.net$ RewriteCond %{REQUEST_URI} !/www RewriteRule ^(.*)$ /www/$1 [NC,L]
1和2工作,但是虽然3给出正确的文件,它改变地址! (所以不可见)所以,在地址栏你可以得到:www.e-motiv.net/test – > www.e-motiv.net/www/test/呃?
如果mod_rewrite不是最好的解决scheme,请告诉!
用mod_rewriteredirect到Apache内build的404页面?
使受保护的URL密码免受直接访问htaccess的影响
.htaccess将所有子文件夹内容(有和没有结束斜杠)redirect到相同的子文件夹
Wamp,SlimPHP和Htacess
这是因为mod_dir。 mod_dir将缩略图添加到映射到目录的网址。 mod_dir不知道用mod_rewrite创建的这些“虚拟url”。
所以要么通过使用禁用此行为
DirectorySlash Off
然而,这将会向www.example.com/folder发出请求,导致404找不到。 你可以用一些重写代码来解决这个问题。 所以完整的解决方案将是这样的:
DirectorySlash Off #www dir only RewriteCond %{DOCUMENT_ROOT}/$0 -d RewriteRule ^www/(.+[^/])$ /$1/ [R,L] #other dirs RewriteCond %{DOCUMENT_ROOT}/$0 -d RewriteRule ^(.+[^/])$ /$1/ [R,L]
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。