使用mod_rewrite隐藏URL的一部分但保留参数

时间:2013-08-02 13:12:11

标签: php mod-rewrite

我想写一条规则,其中members/show/字符串将隐藏在网址中。

原始网址:localhost:8080/sandbox/member/show/helloworld,其中helloworld是帐户的名称。我希望它是localhost:8080/sandbox/m/helloworld。基本上,传递的内容将来自完整的网址,但我希望它可以为任何用户隐藏。

RewriteRule ^.*$ member/show/$0 [L,QSA]似乎不起作用,它会引发500内部服务器错误。我使用CodeIgniter Framework,并且已经存在以下重写规则:RewriteRule .* index.php/$0 [PT,L]

我尝试了几个RewriteRule选项但没有成功。如果有人能解释与我的问题有关的事情,我会很高兴。

最好的问候。

1 个答案:

答案 0 :(得分:1)

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

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

RewriteRule ^(sandbox)/m/([^/]+)/?$ /$1/member/show/$2 [L,NC]