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 - Fatal编程技术网

.htaccess通配符子域

.htaccess通配符子域,.htaccess,.htaccess,我正在尝试使用.htaccess和通配符子域实现一个解决方案,以便 已映射到。我的规则是这样的: RewriteCond %{HTTP_HOST} !www.example.com [NC] RewriteCond %{HTTP_HOST} ^(www.)?([a-z0-9-]+).example.com [NC] RewriteRule ^(.*/) /index.php [PT,L] 这是可行的,但忽略了其他一切。当我尝试在规则中添加任何内容时,例如: RewriteRule ^(.*/)

我正在尝试使用.htaccess和通配符子域实现一个解决方案,以便

已映射到。我的规则是这样的:

RewriteCond %{HTTP_HOST} !www.example.com [NC]
RewriteCond %{HTTP_HOST} ^(www.)?([a-z0-9-]+).example.com [NC]
RewriteRule ^(.*/) /index.php [PT,L]
这是可行的,但忽略了其他一切。当我尝试在规则中添加任何内容时,例如:

RewriteRule ^(.*/) /index.php/hello [PT,L]

我得到一个500内部服务器错误。如何使其工作?

尝试将您的
重写规则更改为

RewriteRule ^/(.*)$ /index.php/accounts/%1/$1 [PT]
这将把URL重写为包含子域和原始请求URI的URL

编辑:也许需要这样做

RewriteRule ^(.*)$ /index.php/accounts/%1/$1 [PT]

如评论中所述。

这是我用来重定向我自己网站上子域的代码的改编。我并不声称这是最佳实践,但它是有效的

RewriteCond %{HTTP_HOST} ^(.*)\.com$ [NC]
RewriteCond %1 !^(www)\.example$ [NC]
RewriteRule ^.*$ http://www.example.com/index.php/accounts/%1/ [R=301,L]

您可能需要从规则中排除
index.php

RewriteCond %{HTTP_HOST} !^www\.example\.com$ [NC]
RewriteCond %{HTTP_HOST} ^(www\.)?([a-z0-9-]+)\.example\.com$ [NC]
RewriteRule !^index\.php($|/) index.php/accounts/%2%{REQUEST_URI} [PT,L]

这是可行的,但我不想重定向网站上的用户。谢谢。我现在无法测试它,但是用[PT,L]替换[R=301,L]会不会起到同样的作用?我试过了,但它似乎没有启动,即使我把index.php改成其他东西。哦。。。在.htaccess中可能需要使用模式^(.*)(无斜杠)。(如果可以的话,我建议将这些指令放在主服务器配置文件中)。谢谢你的帮助!谢谢,我用了其他的(-f和-d),但是这个也可以用,所以我将把它归档以备将来参考。