如何“剪切”地址 - mod_rewrite

时间:2013-08-23 05:59:57

标签: url mod-rewrite

我对mod_rewrite有疑问。

我有这样的链接

http://pagename.com/pl/meskie/longsleevy/criminal-squad#ad-image-0

我想在#之后“剪切”所有内容

http://pagename.com/pl/meskie/longsleevy/criminal-squad

我店里有很多产品,所以我不想为每件产品制定很多规则。 所以我创建了这样的东西:

RewriteRule ^/pl/meskie/longsleevy/([[^#]+)#([^#]+)$ ^/pl/meskie/longsleevy/([[^#]+)$

但这不起作用。 有人可以帮帮我吗?

我的实际.htaccess

<IfModule mod_rewrite.c>

SetEnv HTTP_MOD_REWRITE On

RewriteEngine on
RewriteBase /
RewriteCond %{REQUEST_URI} !^/media/
RewriteCond %{REQUEST_URI} !^/extAdmin/
RewriteCond %{REQUEST_URI} !^/skin/
RewriteCond %{REQUEST_URI} !^/js/
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-l

RewriteRule .* index.php

</IfModule>

谢谢,

1 个答案:

答案 0 :(得分:0)

怎么样?
RewriteRule ^/pl/meskie/longsleevy/([ˆ#]*)#.*$ /pl/meskie/longsleevy/$1

左侧网站上的括号()将存储#之前的所有内容,然后在右侧以$1打印。 ^$在右侧也没用。

另外,要注意贪婪的.*

如果您改变主意并希望使用片段#重写网址,请不要忘记添加[NE]标记。见https://httpd.apache.org/docs/2.2/rewrite/flags.html#flag_ne

进一步阅读apache docs