.htaccess所有子域到特定文件

ulmd4ohb  于 2023-08-06  发布在  其他
关注(0)|答案(1)|浏览(98)

我正在尝试将所有到子域的流量重定向到子域中的一个特定文件。这就是我在htaccess文件中的内容。

RewriteCond %{HTTP_HOST} ^sub\.mydomain\.com$
RewriteRule ^/?$ "http\:\/\/sub.mydomain\.com\/filename\.php" [R=301,L]

字符串

uqdfh47h

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”)中,但也许你正在使用一个便宜的主机提供商,并且没有访问中心配置。

相关问题