【发布时间】:2012-04-01 14:08:05
【问题描述】:
我有一个域(命名为)mydomain.com。
我添加了一个子域sub.mydomain.com。 (是另一个站点,两个站点没有任何关系)
我已将子域(使用 godaddy.com 的工具)映射到 /sub 目录。它适用于静态文件路径,例如。 http://sub.mydomain.com/js/script.js.php。
但是,我希望能够使用重写模块来获取http://sub.mydomain.com/js/script.js
我的 .htaccess 文件:
根目录下的.htaccess:
RewriteEngine On
RewriteCond %{HTTP_HOST} ^sub.mydomain.com$
RewriteRule ^.*$ http://mydomain.com/sub%{REQUEST_URI} [L,P]
/sub 目录下的.htaccess:
RewriteEngine on
RewriteRule ^js/script\.js$ js/script.js.php [L]
(我尝试添加RewriteBase /sub/,但没有成功)。
好像 Apache 没有注意到 /sub 的 .htaccess
如何在子域的路径上进行重写工作?
【问题讨论】:
-
保留
RewriteBase:你需要它,因为重写是相对路径。 -
.htaccess并不是真的在您机器上的/sub目录中,是吗?您如何将 URL/sub映射到路径名:是否有Alias /sub /sub(URL/sub转到机器路径/sub)?处理这些域的<VirtualHost>中的DocumentRoot是什么? -
假设您的
DocumentRoot是/var/www/docroot。然后 URL/sub将映射到/var/www/docroot/sub,而不是/sub。如果你想让/sub去做/sub,这是你的docroot 的一个特殊例外;您可以使用Alias安装它。 -
感谢@Kaz 的回答。 DocumentRoot 是
/var/chroot/home/content/26/7464126/html。映射是用godaddy.com的GUI工具(我用的托管服务)做的,看不到httpd.conf和rewrite.log也不知道有没有设置Alias...在@987654351下@目录我的意思是'DocumentRoot'/sub。 -
你真的应该拥有自己的服务器,无论是虚拟的还是其他的。
标签: apache .htaccess mod-rewrite subdomain