Mod_rewrite:重定向到哈希网址?

时间:2014-08-07 11:44:41

标签: php regex apache .htaccess mod-rewrite

我想将常用网址重定向到哈希网址,如下所示,

http://localhost/mywebsite/estate/heritage/

http://localhost/mywebsite/#/estate/heritage/

我在.htaccess中有这个重写代码,

RewriteRule ^([a-zA-Z0-9\-]+)/([a-zA-Z0-9\-]+)/?$  #/$1/$2/  [R,L,NE]

但我得到的结果是,

http://localhost/C:/wamp/www/mywebsite/#/estate/heritage/

它有一个我不想要的额外位C:/wamp/www/

如何删除它或如何不在我的重写代码中打印它?

2 个答案:

答案 0 :(得分:1)

您需要一个完整的新网址,如下所示:

RewriteRule ^/mywebsite/([a-zA-Z0-9\-]+)/([a-zA-Z0-9\-]+)/?$  /mywebsite/#/$1/$2/  [R,L,NE]

答案 1 :(得分:1)

您可以将此规则放在/mysaite/.htaccess

RewriteEngine On

# set ENV variable BASE equal to current RewriteBase value dynamically
RewriteCond %{REQUEST_URI}::$1 ^(.*?/)(.*)::\2$
RewriteRule ^(.*)$ - [E=BASE:%1]

RewriteRule ^([a-z0-9-]+)/([a-z0-9-]+)/?$ %{ENV:BASE}#/$1/$2/ [L,NC,NE,R=302]

使用RewriteBase对于解决您声明的问题非常重要。