Apache .htaccess重定向不';我不工作

Apache .htaccess重定向不';我不工作,apache,.htaccess,Apache,.htaccess,我有一个带有apache的ubuntu服务器。一切正常。现在我有8个域名。一个是与virtualhost链接的。我们叫它maindomain.com。其他7个域链接到另一个virtualhost,我们将其称为secondarydomain1.com到secondarydomain7.com 我需要这7个域被重定向到主域。必须将/之后的所有内容重定向到基本域。例如,secondarydomain2.com/file.php将被重定向到maindomain.com 有人能帮我如何使用.htacces

我有一个带有apache的ubuntu服务器。一切正常。现在我有8个域名。一个是与virtualhost链接的。我们叫它maindomain.com。其他7个域链接到另一个virtualhost,我们将其称为secondarydomain1.com到secondarydomain7.com

我需要这7个域被重定向到主域。必须将/之后的所有内容重定向到基本域。例如,secondarydomain2.com/file.php将被重定向到maindomain.com

有人能帮我如何使用.htaccess文件吗

我试过这样的东西,但没用

RewriteEngine On
RewriteBase /
RewriteCond %{HTTP_HOST} !^secondarydomain\.com$ [NC]
RewriteRule ^(.*)$ http://maindomain.com [R=301,L]

结果是“您没有权限访问此服务器上的/file.php。”

您需要在apache中启用重写

sudo a2enmod rewrite
您的规则没有将请求uri添加回域部分,这就是为什么您没有获得预期的子部分重定向

试试这个:

RewriteEngine On
RewriteBase /
RewriteCond %{HTTP_HOST} !^secondarydomain\.com$ [NC]
RewriteRule ^(.*)$ http://maindomain.com%{REQUEST_URI} [R=301,L]
在测试箱上测试:

curl http://192.168.163.161/test.html
<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<html><head>
<title>301 Moved Permanently</title>
</head><body>
<h1>Moved Permanently</h1>
<p>The document has moved <a href="http://maindomain.com/test.html">here</a>.</p>
<hr>
<address>Apache/2.2.15 (CentOS) Server at 192.168.163.161 Port 80</address>
</body></html>
curlhttp://192.168.163.161/test.html
301永久搬迁
永久移除
文档已移动


位于192.168.163.161端口80的Apache/2.2.15(CentOS)服务器
我有一些消息。事实上,使用重定向并没有真正起作用。它们是由Chrome缓存引起的。清理缓存后,我收到错误“您没有访问此服务器上的/info.php的权限”。如果.htaccess看起来只像这样:

RewriteEngine On

顺便说一句,我可以在phpinfo中看到mod_rewrite已启用。

虚拟主机配置(或其中的
是否有
允许重写
指令?如果没有它,就根本不会解析.htaccess文件。是的,我允许在标记和它之间进行所有转换,因为如果我只使用域名,它会重定向我,但是如果斜杠后面有内容,它就不起作用。这是启用的,有另一个站点使用mod rewrite。