0

我的代码中有以下代码.htaccess

<IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteBase /annsenglishmediumschool
    RewriteCond %{HTTP_HOST} shops.annsenglishmediumschool.com
    RewriteRule .* http://annsenglishmediumschool.com/index.php/shops [L]    
</IfModule>

这很好用,但是我怎样才能在这里将“商店”作为变量?意味着我们在“ shops”位置输入的任何内容都应该http://annsenglishmediumschool.com/index.php/ 在预先感谢之后出现。

编辑: 编辑后我的.htaccess样子是这样的:

<IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteBase /annsenglishmediumschool
    RewriteCond %{HTTP_HOST} ^(.+?)\.annsenglishmediumschool\.com$
    RewriteRule .* http://annsenglishmediumschool.com/index.php/%1 [L]
</IfModule>

问题是它现在只需要右边的“www”作为 annsenglishmediumschool.com/index.php/www ,没有其他字符串,非常感谢任何帮助

4

2 回答 2

1

您可以将您感兴趣的域名部分捕获为%1并在RewriteRule

RewriteCond %{HTTP_HOST} !^www\.
RewriteCond %{HTTP_HOST} ^(.+?)\.annsenglishmediumschool\.com$
RewriteRule .* http://annsenglishmediumschool.com/index.php/%1 [R,L]

如果主机不是以 开头www.,这会抓取域的第一部分(.+?)并将其放入RewriteRuleas 中%1

当一切按预期工作时,您可以更改RR=301.

永远不要在启用的情况下进行测试,有关详细信息301,请参阅此答案 提示调试 .htaccess 重写规则

于 2013-05-07T13:17:59.723 回答
0

我认为你混合了两件事。您可以将参数直接传递给您的控制器以获取“商店”作为变量。

例如 :

index($variable){

echo $variable;

}

//它会在 yoursite.com/index.php/shop 回显 $variable(shop this time)

于 2013-05-07T11:09:13.610 回答