0

我正在尝试 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

问候, 查尔

4

1 回答 1

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”)没有按照RFC1808与请求一起传递给 Apache 。

于 2013-05-21T13:59:34.090 回答