如果用户输入example.domain.com,我希望他查看www.domain.com/example中的内容。
另一个例子是:
用户将请求example.domain.com/photos/gallery.php?from=var1&no=3,他将查看www.domain.com/example/photos/gallery.php?from=var&no=3中的内容。
注意:在我的子文件夹(通配符)中,我将安装WordPress,所以我也必须记住这个URL系统。
发布于 2018-12-24 13:02:47
我假设您已经在DNS中配置了通配符子域,并且您的服务器配置被配置为接受此类请求。这样,这些子域都将解析为主域的根目录。
我还假设您希望将子域保留在浏览器的地址栏中。
然后,您可以在文档根目录中的.htaccess文件中执行如下操作:
RewriteEngine On
RewriteCond %{HTTP_HOST} !^www\.
RewriteCond %{HTTP_HOST} ^([^.]+)\.domain\.com
RewriteRule ^ /%1%{REQUEST_URI} [L]这就排除了www子域被重写。
提供子目录有自己的.htaccess文件和mod_rewrite指令(正如您期望的WordPress),那么就没有其他需要做的事情了。
更新:但是,如果子目录中没有安装WordPress,即。子目录中没有包含.htaccess指令的mod_rewrite,那么您需要通过添加一个附加条件来修改上面的代码,以防止重写循环(500个内部服务器错误)。
例如:
RewriteCond %{ENV:REDIRECT_STATUS} ^$
RewriteCond %{HTTP_HOST} !^www\.
RewriteCond %{HTTP_HOST} ^([^.]+)\.domain\.com
RewriteRule ^ /%1%{REQUEST_URI} [L]检查REDIRECT_STATUS环境变量的条件通过阻止重写请求来防止重写循环。但是,如上所述,如果WordPress已经安装在子目录中,则这是不必要的。
https://serverfault.com/questions/946504
复制相似问题