花了几个小时搜索没有成功,我想寻求帮助。
我需要(默默地)重写此网址:http://example.com/aaa/bbb/ccc
进入:http://example.com/?p1=aaa&p2=bbb&p3=ccc
基本上我需要将漂亮的URL转换成GET参数 我的要求是:
请帮忙。
我现在拥有的是:
RewriteEngine on
RewriteRule /([^/]+)/([^/]+)?/?([^/]+)?/?([^/]+)?/? ?p1=$1&p2=$2&p3=$3&p4=$4 [NC,L]
我想写#34;这适用于最多4个参数"但....它突然停止工作,我得到500内部服务器错误? Aaaarg!我不知道自己做错了什么......
答案 0 :(得分:2)
您可以在DOCUMENT_ROOT/.htaccess
文件中使用此代码:
RewriteEngine On
RewriteBase /
# skip all files and directories from rewrite rules below
RewriteCond %{REQUEST_FILENAME} -d [OR]
RewriteCond %{REQUEST_FILENAME} -f
RewriteRule ^ - [L]
# handle 4 parameters
RewriteRule ^([^/]+)/([^/]+)/([^/]+)/([^/]+)/?$ ?p1=$1&p2=$2&p3=$3&p4=$4 [QSA,L]
# handle 3 parameters
RewriteRule ^([^/]+)/([^/]+)/([^/]+)/?$ ?p1=$1&p2=$2&p3=$3 [QSA,L]
答案 1 :(得分:2)
更容易做到这一点:
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?params=$1 [L,QSA]
然后在你的代码中你需要爆炸$ _GET [' params']来获取url部分。这可以用于您可能拥有的任何数量的参数,并且用户不会看到差异,因为url总是看起来像example.com/aaa/bbb/ccc