2012-02-14 50 views
2

我想知道如何在.htaccess我也可以把下列网址:.htaccess mod_rewrite ...我想?

/mysite.com/blog/Something => /mysite.com/blog.php?tag=Something

下面是我在不同的网站上使用的脚本然而,这是不是有点simpilar:

<IfModule mod_rewrite.c> 
RewriteEngine On 
RewriteRule ^([a-zA-Z0-9]+)$ index.php?name=$1 
RewriteRule ^([a-zA-Z0-9]+)/$ index.php?name=$1 
</IfModule> 

由于提前

+0

点击在你创建的'.htaccess'上,你会得到很多答案。 – karlcow 2012-02-14 15:15:35

+0

顺便说一句,你可以通过使用“可选”运算符将上述两个规则合并为一个,所以'/?'表示匹配0或1 **'/ ** **字符。因此,合并正则表达式是'^([a-zA-Z0-9] +)/?$' – TerryE 2012-02-14 18:06:19

回答

0

只需添加这条规则:

RewriteRule ^blog/(.*)$ blog.php?tag=$1 [L,QSA,NC] 

更新:根据您的评论因为这是规则,你将需要:

RewriteRule ^blog/([^/]*) blog.php?tag=$1 [L,QSA,NC] 
+0

感谢它的效果很好,但是另一种方式,我可以添加一个斜杠在一些东西ie/blog /有些/因为该规则仅适用于没有它的字符串。 – 4WebDev 2012-02-14 15:30:13

+0

当然,请检查我的更新部分。 – anubhava 2012-02-14 15:34:52

0

尝试添加下列到.htaccess文件在您的网站的根目录。

RewriteEngine on 
RewriteBase/

#/mysite.com/blog/Something to /mysite.com/blog.php?tag=Something 
RewriteRule ^blog/(something)$ blog.php?tag=$1 [L,NC,R=301] 

如果something那么一个变量改变规则

RewriteRule ^blog/(\w+)$ blog.php?tag=$1 [L,NC,R=301] 

如果你想要的网址留在用户的浏览器相同的然后删除R=301如下

RewriteRule ^blog/(\w+)$ blog.php?tag=$1 [L,NC]