2012-02-14 80 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]