.htaccess 将漂亮的URL转换为GET参数
经过数小时的搜索,我想寻求帮助 我需要(无声地)重写此URL:.htaccess 将漂亮的URL转换为GET参数,.htaccess,mod-rewrite,.htaccess,Mod Rewrite,经过数小时的搜索,我想寻求帮助 我需要(无声地)重写此URL:http://example.com/aaa/bbb/ccc 进入这个:http://example.com/?p1=aaa&p2=bbb&p3=ccc 基本上,我需要将漂亮的URL转换为GET参数。 我的要求是: 用户不得知道此重写(浏览器地址栏未更改) 适用于任意数量的级别/参数 请帮忙 我现在拥有的是: 重新启动引擎 重写规则/([^/]+)/([^/]+)?/?([^/]+)?/?([^/]+)?/?([^/]+)?/?p
http://example.com/aaa/bbb/ccc
进入这个:
http://example.com/?p1=aaa&p2=bbb&p3=ccc
基本上,我需要将漂亮的URL转换为GET参数。我的要求是:
- 用户不得知道此重写(浏览器地址栏未更改)
- 适用于任意数量的级别/参数
重新启动引擎
重写规则/([^/]+)/([^/]+)?/?([^/]+)?/?([^/]+)?/?([^/]+)?/?p1=$1和p2=$2和p3=$3和p4=$4[NC,L]
我想写“这对最多4个参数有效”,但是。。。。它突然停止工作,我得到500个内部服务器错误?啊啊!我不知道我做错了什么…您可以在
文档\u 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]
更简单的方法可能是:
RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php?params=$1 [L,QSA]
然后在代码中,只需分解$\u GET['params']即可获得url部分。这适用于您可能拥有的任何数量的参数,用户将看不到差异,因为url始终看起来像example.com/aaa/bbb/ccc仍然是500内部服务器错误。这不是在创建无限重写循环吗?现在试试,-f line跳过重写中的所有文件,-d所有目录我很高兴能帮上忙