.htaccess在不更改url的情况下重写到同一服务器上的另一个域
我有一个具有漂亮URL的web应用程序。其中的.htaccess文件如下所示:.htaccess在不更改url的情况下重写到同一服务器上的另一个域,.htaccess,mod-rewrite,url-rewriting,.htaccess,Mod Rewrite,Url Rewriting,我有一个具有漂亮URL的web应用程序。其中的.htaccess文件如下所示: Options +FollowSymlinks RewriteEngine on RewriteRule ^([a-z0-9]+)(/)?([a-z0-9]+)?$ /home/user/domains/domain1.com/public_html/sites/index.php?site=$1&page=$3 [QSA] 因此,当我进入domain1.com/site/page时,它实际上会显示doma
Options +FollowSymlinks
RewriteEngine on
RewriteRule ^([a-z0-9]+)(/)?([a-z0-9]+)?$ /home/user/domains/domain1.com/public_html/sites/index.php?site=$1&page=$3 [QSA]
因此,当我进入domain1.com/site/page时,它实际上会显示domain1.com/index.php?site=site&page=page。这个很好用
但是
我有另一个域名,比如domain2.com。我在DirectAdmin的同一个帐户中有它。当我输入ftp帐户并进入domains/时,我看到了domain1.com和domain2.com
我想强制domain2.co.il显示domain1.com/index.php?site=domain2
我在domain2.com的public_html中放置了相同的.htaccess文件,只对site参数做了一点小小的更改。结果是404错误
所以问题是:如何让它以我想要的方式工作
我也读了下面的帖子,但我似乎找不到它们的用处。也许我只是不明白如何:
假设您的文件夹结构如下所示
/domains
/domain1.com
/domain2.com
可以使用以下规则执行此操作:
RewriteRule ^(.*)? ../domain1.com/index.php?site=domain2&q=$1 [L]
很有可能您必须使用PHP的chdir函数使其在适当的目录中运行,您可以通过向chdir传递PHP魔法常量\uuuu DIR\uuu来实现这一点。您是否可以访问apache的.conf文件?或者mod_代理模块是否已启用?或者可以启用mod_代理吗?否则不可能。我想我可以访问这两个功能。但这对我有什么帮助?都是重写规则^.*/domain1.com/public_html/sites/index.php?site=elizur&q=$1[L],并重写规则^.*.//domain1.com/public\u html/sites/index.php?site=elizur&q=$1[L]我认为public\u html导致它向上2级,导致错误请求为400。您的浏览器发送了一个此服务器无法理解的请求。这很奇怪。上述规则在我的服务器上运行良好。在这种情况下,它可能与服务器的配置有关。特别奇怪的是,你已经打开了FollowSymLinks。你能想出任何可能阻止它的配置吗?不是马上。如果有什么不同的话,我可能会期望有太多的重定向错误,所以这是相当令人困惑的。当我有时间的时候,我会看看我是否能在我自己的服务器上触发错误。