处理'#'在Apache重写规则中的请求URI中

时间:2015-11-13 16:57:36

标签: apache mod-rewrite

看起来Apache Rewrite Rules忽略了#'#'在请求URI中。

我想重写以下请求

hptt:// localhost / app_name /#Place = abc

http://localhost/app_name/#/#ID=abc

以下是我迄今为止尝试过的规则,但没有一个有效。

RewriteEngine on 

  # Rule 1
  RewriteCond %{HTTP_REFERER} %{HTTP_HOST}/app_name/#Place=(.*)$ [NC] 
  RewriteRule ^app_name/#Place=(.*)$ /app_name/#/#ID=$1 [R,L]

  # Rule 2
  RewriteCond %{QUERY_STRING} ^#Place=(.*)$ [NC] 
  RewriteRule ^app_name/#Place=(.*)$ /app_name/#/#ID=$1 [R,L]

当我在http://martinmelin.se/rewrite-rule-tester/尝试规则1)时,它按预期工作。我的本地apache如何不重写规则

由于

2 个答案:

答案 0 :(得分:0)

也许apache不允许用.htaccess覆盖规则。

如果你在ubuntu上编辑文件/etc/apache2/apache2.conf

RoundedBitmapDrawable roundedBitmapDrawable = RoundedBitmapDrawableFactory.create(getResources(), bitmap);
final float roundPx = (float) bitmap.getWidth() * 0.06f;
roundedBitmapDrawable.setCornerRadius(roundPx);

并将其更改为

<Directory /var/www/>
        Options Indexes FollowSymLinks
        AllowOverride None
        Require all granted
</Directory>

然后重启apache

<Directory /var/www/>
        Options Indexes FollowSymLinks
        AllowOverride All
        Require all granted
</Directory>

答案 1 :(得分:0)

Web浏览器不会在HTTP请求消息中发送片段。在服务器端尝试使用它们毫无意义。