首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >Apache URL重写-隐藏URL路径中的/public_html

Apache URL重写-隐藏URL路径中的/public_html
EN

Stack Overflow用户
提问于 2011-11-05 10:29:05
回答 1查看 2.8K关注 0票数 0

我想在我的浏览器中键入以下url:

localhost/mydomain/about.php

并让apache重定向到实际的文件位置:

localhost/mydomain/public_html/about.php

我编写了以下.htaccess文件:

RewriteEngine On
RewriteRule ^(.+)$ public_html/$1

我对Apache完全不熟悉,我对reg表达式的理解非常基础--但我认为这意味着“在域名后面选择任何路径,并在其前面加上public_html/”。但是,结果是一个500内部服务器错误。

我遗漏了什么?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-11-05 10:47:15

这是因为仅指定^(.+)$规则将使重写处于无限循环中。

about.php > public_html/about.php > public_html/public_html/about.php > ...

一个快速的解决方案是RewriteRule ^([^/]*)$ public/$1。或者,您可能对重写规则的LAST修饰符/标志感兴趣:

RewriteRule ^public/(.*)$ public/$1 [L]
RewriteRule ^(.*)$ public/$1

如果你想知道调试rewrite_module的方法,你可以在httpd.conf中设置LogLevel DEBUG,然后你可以查看apache错误日志。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8017764

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档