2013-05-21 82 views
0

我試圖mod_rewrite一個URL,但不幸的是沒有任何運氣。mod_rewrite - 替換網址中的單詞或字符

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

應改爲:

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

其中 '417' 是像& mycustom-gallery也將發生變化的每次的動態ID。

我試過下面的規則,但沒有一個似乎工作...

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 

問候, 查爾

+0

你想要重寫哪種方式?從http://mywebsite.com/gallery/mycustom-gallery/linkid417到http://mywebsite.com/gallery/mycustom-gallery/#417(如你的問題所示),反之亦然(當你的重寫被寫入)? – Ketola

回答

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轉義URL中的散列dur 301重定向。

然而,如果你希望做相反,即重定向從http://mywebsite.com/gallery/mycustom-gallery/#417http://mywebsite.com/gallery/mycustom-gallery/linkid417,那不能做,作爲請求的區段部分(「#417」)不傳遞到Apache與請求一起按RFC1808

+0

嗨全部 感謝您的所有迴應。 以下方法...... RewriteCond%{REQUEST_URI} ^/gallery/mycustom-gallery/[az] +([0-9] +)$ RewriteRule ^(。*)$/gallery/mycustom-gallery/\%23%1 [R = 301,NE,L] 然後將%23更改爲#。 Regards, Charl –

+0

該解決方案僅適用於包含「mycustom-gallery」的網址。如果圖庫名稱可以更改,則需要使用正則表達式模式來匹配。 – Ketola