我想在URL中映射多个目录:
www.example.com/manual www.example.com/login
到web根目录之外的目录。
我的网站的根
/www/htdocs/customername/site
我想redirect到的手册在
500内部服务器尝试使用ErrorDocument处理请求时出错
mod_rewrite中的绝对文件path – 允许吗?
MOD_REWRITE帮助!
URL处理 – PHP与Apache重写
Apache mod_rewrite%2B和加号(+)
/www/customer/some_other_dir/manual
在mod_alias中,这将等于
Alias /manual /www/customer/some_other_dir/manual
但是因为我只能访问.htaccess ,所以我不能使用Alias,所以我必须使用mod_rewrite 。
在这个问题之后,我现在所得到的是:
RewriteRule ^manual(/(.*))?$ /www/htdocs/customername/manual/$2 [L]
这是从请求被正确识别和redirect的意义上讲的,但是我得到了一个如下所示的404(注意绝对path):
The requested URL /www/htdocs/customername/manual/resourcename.htm was not found on this server.
但是,我已经检查与PHP: echo file_exists(...) ,该文件肯定存在。
为什么会这样? 根据mod_rewrite文档,这是可能的,即使在.htaccess文件。 我明白,在.htaccess中做mod_rewrite时,会有一个自动化的前缀,但不是绝对path,会吗?
它也不应该是一个权利问题:它不在Web根目录中,而是在只有一个用户(主FTP帐户)可以访问的FTP树内。
我可以随时更改控制面板中的Web根目录,但是我希望按照我所描述的方式工作。
这是共享主机,所以我没有访问错误日志。
我刚刚检查过,这不是一个错误的301redirect,只是一个内部重写。
处理额外获取variables的Mod_rewrite(QSA不工作)
我怎样才能使用mod_rewrite删除后的一切? (问号)在一个URL?
.htaccess的子域名重写
重写/index.PHP?page=about到/ page /
如何redirect到一个子文件夹,然后在htaccess重写子文件夹链接到根?
AFAIK mod_rewrite在“协议”级别工作(意思是在HTTP上)。 所以我怀疑你是在你的目录路径获取HTTP 302的位置。
所以我怕你可能被卡住,除非..你的主机让你遵循符号链接; 因此您可以链接到当前文档根目录下的位置(假设您有shell访问权限,或者可以使用FTP或控制面板)。
编辑:它实际上提到在文档中的URL文件阶段挂钩,所以现在我怀疑目录指令不允许足够的权限。
在.htaccess中,你不能重写wwwroot之外的文件。
然后在你的.htaccess中你需要这行:
Options +SymLinksIfOwnerMatch
或者更盲目一点
Options +FollowSymlinks
然后你可以
RewriteRule ^manual(/(.*))?$ /www/htdocs/customername/site/manual/$2 [L]
在站点下的手册是到/ www / customer / some_other_dir / manual的链接
您可以在命令行中使用以下命令创建符号链接:
ln -s /www/htdocs/customername/site/manual /www/customer/some_other_dir/manual
但是我想象你在没有shell访问的情况下共享主机,所以看看在CPanel,Webmin或者你的管理界面中创建符号链接。 还有PHP / cgi脚本。 当然,你仍然受限于主机给你的权限。 如果他们不允许你遵循符号链接作为一个策略,你不能在你的.htaccess中覆盖它。
这告诉你你需要知道什么。 在此服务器上找不到请求的URL /www/htdocs/customername/manual/resourcename.htm。 它将RewriteRule ^manual(/(.*))?$ /www/htdocs/customername/manual/$2 [L]为意指重写example.com/manual/,就好像它是example.com/www/htdocs/customername/手册/。
尝试
RewriteRule ^manual(/(.*))?$ /customername/manual/$2 [L]
代替。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。