Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/.htaccess/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
.htaccess 将漂亮的URL转换为GET参数_.htaccess_Mod Rewrite - Fatal编程技术网

.htaccess 将漂亮的URL转换为GET参数

.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

经过数小时的搜索,我想寻求帮助

我需要(无声地)重写此URL:
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所有目录我很高兴能帮上忙