2016-07-07 98 views
0

我不敢相信我自己找不到解决方案,但是在这里。我希望Apache将每个请求重定向到example.com/page.php到。我在互联网和StackOverflow上找到了很多选项,但都没有工作。现在,我得到这样的:将所有内容重定向到public_html

RewriteEngine on 
RewriteCond %{HTTP_HOST} ^example.com\$ 
RewriteRule (.*) http://example.com/http/$1 [R=301,L] 
RewriteRule ^$ http [L] 

这重定向到example.comexample.com/httpexample.com/some_page.php一切都抛出一个404错误。其他选项根本不起作用或者做同样的事情。 这是CentOS上的Apache/2.2.22,如果这很重要。

回答

1

试试这个规则:

RewriteEngine on 

RewriteCond %{HTTP_HOST} ^example\.com$ [NC] 
RewriteRule ^(?!http/).*\.php$ /http%{REQUEST_URI} [R=301,L,NE,NC] 

确保测试此之前,清除浏览器缓存。

+0

现在它会抛出500错误,并在日志中显示'未知标志'NE'。可能是Apache的一些旧的/不兼容的版本? upd:docs说Apache 2.2应该支持'NE'标志,现在我真的很困惑。 – Urffly

+0

对不起,第一行应该有'NC'而不是'NE',尝试更新规则 – anubhava

+0

好了,它变得更糟了。现在'example.com'不会重定向到'example.com/http'和'example.com/page.php'仍然会引发404错误。 – Urffly

相关问题