到URL我想要使用mod_rewrite做网址是这样的:重写搜索引擎优化的URL与查询字符串
http://domain.tld/id/1/type/2/url/http://domain2.tld
我怎么能这样做?
到URL我想要使用mod_rewrite做网址是这样的:重写搜索引擎优化的URL与查询字符串
http://domain.tld/id/1/type/2/url/http://domain2.tld
我怎么能这样做?
将这个代码在.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。
非常感谢,正在工作:) – Alexander 2011-06-03 07:58:25
现在我们开始营业了!创建.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”,则只是众多搜索结果中的一个。
我已经试过这个,但不工作。在url /我需要使用http://domain.tld之后,这不起作用。 – Alexander 2011-06-01 18:56:41
A)我不明白你的意思是“uset http://domain.tld,这不起作用”,以及B)如果你已经包含了你已经尝试过的东西,所以我们不会**浪费我们的时间**建议你已经尝试过的事情。这部分工作中的原则 - 我直接从我自己的网站上运行的htaccss文件中取出。 :)编辑你的问题,并包括所有相关的细节,包括你已经尝试过。 – 2011-06-01 18:59:23
我有一个像这样的链接api.php?uid = 1&args = 1&url = http://domain.tld(http://之间没有空格),我想用^ id /(.*)重写这个链接, /type/(.*)/url/(.*)$最后的语法不起作用,我的PHP没有得到$ 3。没有mod_rewrite一切都很好,但模式重写不工作$ 3(&url = $ 3)。我不知道如何解释更多。 – Alexander 2011-06-01 19:04:30
你想要重写后的url成为什么?这是了解如何制定mod_rewrite规则的关键信息。 – 2011-06-01 18:33:23
@Chris我有这样的api:api.php?uid = 1&args = 1&url = http://domain.tld我想用mod_rewrite来做这个。 – Alexander 2011-06-01 18:48:23