mod_rewrite - 替换url中的单词或字符

时间:2013-05-21 13:22:36

标签: mod-rewrite

我试图mod_rewrite一个URL,但遗憾的是没有运气。

http://mywebsite.com/gallery/mycustom-gallery/linkid417

应改为:

http://mywebsite.com/gallery/mycustom-gallery/#417

其中'417'是图像的动态id& mycustom-gallery也会每次都发生变化。

我已经尝试了以下规则,但似乎都没有...

   RewriteRule ^/gallery/$1/#([a-zA-Z0-9_-]+)/([a-zA-Z0-9_-]+)/y/([0-9]+)$ /gallery/$1/linkid [L,R=301]
RewriteRule mycustom-gallery/#.*$ /mycustom-gallery/linkid=417/$1

此致 查尔

1 个答案:

答案 0 :(得分:0)

如果您尝试从http://mywebsite.com/gallery/mycustom-gallery/linkid417重写为http://mywebsite.com/gallery/mycustom-gallery/#417,可以按以下方式进行:

RewriteRule ^/gallery/([a-zA-Z0-9_-]+)/linkid([0-9]+)$ /gallery/$1/#$2 [NE,L,R=301]

NE|noescape标志阻止Apache在301重定向期间转义URL中的哈希值。

如果您希望执行相反的操作,即从http://mywebsite.com/gallery/mycustom-gallery/#417重定向到http://mywebsite.com/gallery/mycustom-gallery/linkid417,则无法完成,因为请求的片段部分(“#417”)未传递给Apache以及RFC1808的请求。