2012-05-20 83 views
0

我有以下问题:重写动态URL

http://www.mydomain.com/articles.php?artid=89

应该变成:http://www.mydomain.com/mykeyword

我不介意的ID留在网址...这样的:http://www.mydomain.com/89/mykeyword

我对当下以下的.htaccess:

RewriteEngine On 
RewriteBase/

RewriteCond %{HTTP_HOST} ^(mydomain\.com)$ [NC] 
RewriteRule ^(.*)$ http://www.%1/$1 [R=301,L] 

RewriteCond %{THE_REQUEST} ^[A-Z]{3,}\s/+news\.php [NC] 
RewriteRule^mykeyword [R=301,L] 

RewriteRule ^mykeyword/?$ news.php [L,NC] 

上面的部分就像一个魅力。

任何帮助将深表谢意。

问候,卓然

回答

0

在你的.htaccess的底部附加这些规则:

RewriteEngine On 
RewriteBase /turkexpo/ 

RewriteCond %{HTTP_HOST} ^(webone\.gr)$ [NC] 
RewriteRule ^(.*)$ http://www.%1/turkexpo/$1 [R=302,L] 

RewriteCond %{THE_REQUEST} ^[A-Z]{3,}\s/+turkexpo/news\.php [NC] 
RewriteRule^mykeyword [R=302,L] 

RewriteRule ^mykeyword/?$ news.php [L,NC] 

RewriteCond %{THE_REQUEST} ^[A-Z]{3,}\s/+turkexpo/articles\.php\?artid=([0-9]+) [NC] 
RewriteRule^%1/mykeyword? [R=302,L] 

RewriteRule ^([0-9]+)/mykeyword/?$ articles.php?artid=$1 [L,NC,QSA] 

RewriteCond %{THE_REQUEST} ^[A-Z]{3,}\s/+turkexpo/companies\.php\?fairid=([0-9]+)&ehallid=([0-9]+) [NC] 
RewriteRule^companies/%1/%2? [R=302,L] 

RewriteRule ^companies/([0-9]+)/([0-9]+)/?$ companies.php?fairid=$1&ehallid=$2 [L,NC,QSA] 

这将转发的/89/mykeyword一个URI来/articles.php?artid=89和外部重定向它的对面。

确定它正在工作后,将R=302更改为R=301

+0

Temporaray,this site is under:www.mydomain.com/somefolder由于规则RewriteCond%{HTTP_HOST} ^(mydomain \ .com)$ [NC] RewriteRule ^(。*)$ http:// www 。%1/$ 1 [R = 301,L]我看不到变化。我应该如何修改这两条规则才能看到实际的变化? – Zoran

+0

我认为RewriteCond%{HTTP_HOST} ^(mydomain \ .com)$ [NC]应该是类似于RewriteCond%{HTTP_HOST} ^(mydomain \ .com \ somefolder)$ [NC]我尝试过但它没有工作 – Zoran

+0

任何我们可以在Skype上遇见对方的机会,所以你可以很容易地看到我的问题?或者它违反现场监管? – Zoran