在mod_rewrite的URL中的特殊字符(Special characters in mod_r

2019-10-17 08:10发布

我希望这个网址:

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]

但是,结果并不像我想的那样,当我去的第一个网址,我得到找不到消息的页面。

当我访问这个URL出现同样的问题:

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

这应该被改写成这样:

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

我应该怎么修改我的.htaccess,使这项工作?

Answer 1:

启用了mod_rewrite并通过的.htaccess httpd.conf ,然后把这个代码在你.htaccessDOCUMENT_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]


文章来源: Special characters in mod_rewrite url