我正在尝试将所有到子域的流量重定向到子域中的一个特定文件。这就是我在htaccess文件中的内容。
RewriteCond %{HTTP_HOST} ^sub\.mydomain\.com$ RewriteRule ^/?$ "http\:\/\/sub.mydomain\.com\/filename\.php" [R=301,L]
字符串
uqdfh47h1#
不确定你是否需要这个条件(这取决于你的设置),但是它不会伤害你,所以让我们保留它。这应该是你实际要求的一个工作变体:
RewriteEngine on RewriteCond %{HTTP_HOST} ^sub\.mydomain\.com$ RewriteCond ${REQUEST_URI} !^/filename\.php$ RewriteRule ^ /filename.php [R=301,L]
字符串但我怀疑这是你真正想要实现的。我怀疑你实际上想要一个内部重写,而不是外部重定向。就像这样:
RewriteEngine on RewriteCond %{HTTP_HOST} ^sub\.mydomain\.com$ RewriteCond ${REQUEST_URI} !^/filename\.php$ RewriteRule ^ /filename.php [L]
型这将使浏览器中的可见URL保持不变,但 * 内部 * 重写对该php文件的所有请求。这将对用户保持不可见。或者你甚至想要两者的结合:
RewriteEngine on RewriteCond %{HTTP_HOST} ^sub\.mydomain\.com$ RewriteCond ${REQUEST_URI} !^/$ RewriteRule ^ / [R=301,L] RewriteCond %{HTTP_HOST} ^sub\.mydomain\.com$ RewriteCond ${REQUEST_URI} !^/filename\.php$ RewriteRule ^ /filename.php [L]
型一般来说,我更愿意在实际的http服务器的主机配置中实现这样的一般规则,所以在一个中心位置,而不是在分布式配置文件(“.htaccess”)中,但也许你正在使用一个便宜的主机提供商,并且没有访问中心配置。
1条答案
按热度按时间uqdfh47h1#
不确定你是否需要这个条件(这取决于你的设置),但是它不会伤害你,所以让我们保留它。
这应该是你实际要求的一个工作变体:
字符串
但我怀疑这是你真正想要实现的。我怀疑你实际上想要一个内部重写,而不是外部重定向。就像这样:
型
这将使浏览器中的可见URL保持不变,但 * 内部 * 重写对该php文件的所有请求。这将对用户保持不可见。
或者你甚至想要两者的结合:
型
一般来说,我更愿意在实际的http服务器的主机配置中实现这样的一般规则,所以在一个中心位置,而不是在分布式配置文件(“.htaccess”)中,但也许你正在使用一个便宜的主机提供商,并且没有访问中心配置。