现在我正在使用codeigniter开展网店项目。 最后,子域名上将有多个网上商店,主域名将有一个首页。
它应该是充满活力的,以便网上商店获得自己的子域名。 商店信息在数据库中。假设我有一个mysql表,其中包含以下信息:
等等。
现在在.htaccess文件中我想制作一个重写规则,以便将bobsshop.mydomain.com重写为mydomain.com/bobsshop/,因为我在Codeigniter中使用控制器。
你应该记住,index.php也必须被重写,并且还应该有可能制作像bobsshop.mydomain.com/contact /
这样的子页面我将创建一个php脚本,它将检查数据库中是否存在子域,如果它不存在,那么访问者将看到404。
我的DNS设置看起来像这个ATM:
其中xxx.xxx.xxx.xxx是我的服务器IP。
我以前从未使用过htaccess / mod_rewrite。 可以吗?是否有人可以帮助我做到这一点?
抱歉我的英文。我希望你明白我在做什么。
提前致谢
答案 0 :(得分:0)
RewriteEngine on
RewriteCond $1 !^(index\.php|resources|robots\.txt)
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{HTTP_HOST} ^((?!www\.)(?!mydomain\.com)[^\.]+)\.
RewriteRule ^(.*)$ http://www.mydomain.com/index.php?/%1/$1 [L]
输入网址 - http://adasd.mydomain.com/test
1 RewriteCond %{HTTP_HOST} ^((?!www\.)(?!mydomain\.com)[^\.]+)\.
This condition was met
2 RewriteRule ^(.*)$ http://www.mydomain.com/index.php?/%1/$1 [L]
This rule was met, the new url is http://www.mydomain.com/index.php?/adasd/test
The tests are stopped, using a different host will cause a redirect
输出网址 - http://www.mydomain.com/index.php?/adasd/test
然后,您可以通过
从URL中删除index.php$config['index_page'] = "index.php"
与$config['index_page'] = ""
在某些情况下,uri_protocol的默认设置无法正常工作。要解决此问题,只需将$config['uri_protocol'] = "AUTO"
替换为system / application / config / config.php中的$config['uri_protocol'] = "REQUEST_URI"