2011-04-29 63 views
0

我已经看了几天,甚至让IT人员在工作,试图找出它,但我们并没有走得很远。如何使用.htaccess重定向一个包含#字符的网址

我有一个网址my.website.com/index.php#!lightBox[gallery]/0/,我想重定向到my.website.com。我只用index.php就可以做到这一点,但这是额外的部分,不工作。我已经试过:

RewriteCond %{HTTP_HOST} ^my.website.com$ [NC] 
RewriteRule (.*) http://my.website.com/index.php#!lightBox[gallery]/0/? [R=301,L] 

和的cPanel生成以下重定向:

RewriteCond %{HTTP_HOST} ^my.website.com$ [OR] 
RewriteCond %{HTTP_HOST} ^www.my.website.com$ 
RewriteRule ^/?$ "http\:\/\/my\.website\.com\/\#\!lightBox\[gallery\]\/0\/" [R=301,L] 

两个输出my.website.com/%23!lightBox[gallery]/0/作为URL - 正如你所看到的散列不被处理。

如果有人有任何想法,我很乐意听到!

谢谢:)

+0

似乎CPanel不正确地转义第二个'RewriteRule'参数。 – 2011-04-29 16:04:10

回答

0

让你的规则是这样的:

Options +FollowSymlinks -MultiViews 
RewriteEngine on 

RewriteCond %{HTTP_HOST} ^(www\.)?my\.website\.com$ [NC] 
RewriteRule ^/?$ http://my.website.com/index.php#!lightBox[gallery]/0/ [R=301,L,NE] 

你需要逃避点.中的RewriteCond但不需要逃脱RHS任何特殊字符。重要的是,您需要标记NE以避免产生的URI。

+0

谢谢!它保持网址完好无损,但最终出现错误 - “尝试打开时出现太多重定向”http://my.website.com/#!lightBox[gallery]/0/“。如果打开页面,可能会发生这种情况这是重定向打开另一个页面,然后重定向到打开原始页面。“在Safari和Firefox中也出现了类似的错误。我删除了.htaccess中的所有其他内容,以查看是否有冲突,但同样的事情又发生了。 – Rachel 2011-04-29 16:36:29

+0

其实,在index.php中加入这样 RewriteRule^/?$ http://my.website.com/index.php#!lightBox[gallery]/0/ [R = 301,L,NE] ,它的工作。非常感谢! – Rachel 2011-04-29 16:41:10

+0

不客气,我更新了我的回答以反映'index.php'。 – anubhava 2011-04-29 16:45:42

相关问题