Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/.htaccess/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
.htaccess htaccess将子域重写到子文件夹_.htaccess - Fatal编程技术网

.htaccess htaccess将子域重写到子文件夹

.htaccess htaccess将子域重写到子文件夹,.htaccess,.htaccess,我试图实现让子域指向子文件夹,例如 http://{subdomain}.example.com指向http://example.com/{subdomain}而不更改地址栏中的URL 我目前有以下代码: RewriteEngine on RewriteBase / RewriteCond %{HTTP_HOST} ^(.*)\.example\.com RewriteRule ^(.*)$ http://example.com/%1 [L] 这似乎有效,但它也改变了我的URL栏 我知道关于这

我试图实现让子域指向子文件夹,例如
http://{subdomain}.example.com
指向
http://example.com/{subdomain}
而不更改地址栏中的URL

我目前有以下代码:

RewriteEngine on
RewriteBase /
RewriteCond %{HTTP_HOST} ^(.*)\.example\.com
RewriteRule ^(.*)$ http://example.com/%1 [L]
这似乎有效,但它也改变了我的URL栏


我知道关于这一点有多个问题,但没有一个适合我的awnser。

您可以在
文档\u ROOT/.htaccess
文件中使用此基于前瞻的规则:

RewriteEngine On
RewriteBase /

RewriteCond %{HTTP_HOST} !^www\.
RewriteCond %{HTTP_HOST} ^.*\.example\.com$ [NC]
RewriteCond %{HTTP_HOST}:%{REQUEST_URI} ^([^.]+)\.[^:]+:(?!/\1/).*$
RewriteRule ^ %1%{REQUEST_URI} [L]

尝试改用虚拟主机,编辑httpd-vhosts.conf并添加以下内容:

<VirtualHost *:80>
  ServerAlias *.yourdomain.com #wildcard catch all
  VirtualDocumentRoot /opt/lampp/htdocs/%1
  UseCanonicalName Off
  <Directory "opt/lampp/htdocs">
    Options FollowSymLinks
    AllowOverride All
    Order allow,deny
    Allow from all
  </Directory>
</VirtualHost>

ServerAlias*.yourdomain.com#通配符包罗万象
VirtualDocumentRoot/opt/lampp/htdocs/%1
UseCononicalName关闭
选项如下符号链接
允许超越所有
命令允许,拒绝
通融

这并没有解决我的问题,它的行为与我在问题中所说的完全一样。谢谢你的帮助:)这个规则在我的web服务器上运行得很好。若它正在更改URL,那个么问题可能是您的浏览器缓存。