使用查询字符串将seo-url重写为url

时间:2011-06-01 18:31:18

标签: apache mod-rewrite url-rewriting

我想使用mod_rewrite来做这样的网址:

http://domain.tld/id/1/type/2/url/http://domain2.tld

我该怎么做?

2 个答案:

答案 0 :(得分:1)

将此代码放入.htaccess文件中:

Options +FollowSymlinks -MultiViews
RewriteEngine on

RewriteCond %{REQUEST_URI} ^/+id/([^/]*)/type/([^/]*)/url/(http://)?(.*)$ [NC]
RewriteRule ^ /api.php?uid=%1&type=%2&url=%3%4 [L,NE]

这将支持/id/1/type/2/url/http://domain2.tld/id/1/type/2/url/domain2.tld URI。

答案 1 :(得分:0)

现在我们开始营业了!创建一个.htaccess文件,然后添加以下行:

RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteRule ^id/(.*)/type/(.*)/url/http:/(.*)$   api.php?uid=$1&type=$2&url=$3 [L]

请注意,这最终会将domain2.tld作为url参数传递 - 您必须自行添加“http://”。正如我们在评论中所讨论的那样,使用urlencode正确形成的网址最好,但如果这不是一个选项,那就可以了。

互联网上mod_rewrite没有缺乏信息。这是一个博客:http://www.htmlist.com/how-to/a-simplemod_rewrite-tutorial/ - 如果您在Google上搜索“mod_rewrite”,这只是众多结果中的一个。