mod_rewrite url中的特殊字符

时间:2012-10-30 18:45:18

标签: .htaccess url-rewriting

我想要这个网址:

http://www.mydomainblabla.com/s/can+you+drill+shrinky+dinks?.html

要改写为这个:

http://www.mydomainblabla.com/search.php?q=can+you+drill+shrinky+dinks?

我在.htaccess中使用此mod_rewrite规则来完成此操作

RewriteRule ^s/(.+).html$ search.php?q=$1 [L,QSA]

但是,结果并不像我想要的那样,当我转到第一个网址时,我收到了一个找不到页面的消息。

访问此网址时会出现同样的问题:

http://www.mydomainblabla.com/s/http://www.zakgeldnodig.nl/.html

应该改写成这个:

http://www.mydomainblabla.com/search.php?q=http://www.zakgeldnodig.nl/

我应该对我的.htaccess进行哪些修改才能使其正常工作?

1 个答案:

答案 0 :(得分:1)

通过httpd.conf启用mod_rewrite和.htaccess,然后将此代码放在.htaccess目录下的DOCUMENT_ROOT中:

Options +FollowSymLinks -MultiViews
# Turn mod_rewrite on
RewriteEngine On
RewriteBase /

RewriteCond %{THE_REQUEST} ^[A-Z]{3,}\s/+s/(.+?)\.html [NC]
RewriteRule ^ search.php?q=%1 [L,NE]