Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/277.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

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
Php htaccess查询重写第一次_Php_.htaccess - Fatal编程技术网

Php htaccess查询重写第一次

Php htaccess查询重写第一次,php,.htaccess,Php,.htaccess,我尝试了很多来自google和stack overflow的查询/答案,但找不到一个适合我的 我有一个文件users.php,当我发送users.php?user=username时,我希望它是users/user/username。我已经在我的.htaccess中删除了php扩展名 最好的方法是什么?此外,提供所需的适当文件结构的帮助也会有所帮助 编辑:以下是我到目前为止的资料: Options +FollowSymlinks -MultiViews RewriteEngine on # t

我尝试了很多来自google和stack overflow的查询/答案,但找不到一个适合我的

我有一个文件users.php,当我发送users.php?user=username时,我希望它是users/user/username。我已经在我的.htaccess中删除了php扩展名

最好的方法是什么?此外,提供所需的适当文件结构的帮助也会有所帮助

编辑:以下是我到目前为止的资料:

Options +FollowSymlinks -MultiViews
RewriteEngine on

# to make `/path/index.php` to /path/
RewriteCond %{THE_REQUEST} ^GET\s(.*/)index\.php [NC]
RewriteRule . %1 [NE,R=301,L]

RewriteCond %{THE_REQUEST} ^GET\s.+\.php [NC]
RewriteRule ^(.+)\.php$ /$1 [NE,R=301,L,NC]

RewriteCond %{REQUEST_URI} !\.php$ [NC]
RewriteCond %{REQUEST_FILENAME}.php -f
RewriteRule . %{REQUEST_URI}.php [L]
试试这个htaccess代码

RewriteEngine On 
RewriteRule ^users/user/(.*)/$ users.php?user=$1 [L]

呵呵。。我们都有相同的答案!尝试删除.htaccess文件中的所有代码,然后单独检查,仅检查其本身:

Options +FollowSymlinks
RewriteEngine on

RewriteRule ^users/user/([a-z0-9-_]+) /users.php?user=$1 [NC]
在规则末尾使用
[NC]
标志,以不区分大小写的方式与之匹配。这意味着,规则将不关心字母是大写还是小写


现在,如果包含/users.php的文件夹标题为/html,请尝试一下:

Options +FollowSymlinks
RewriteEngine on

RewriteRule ^users/user/([a-z0-9-_]+) /html/users.php?user=$1 [NC]
只需将“html”更改为包含users.php的文件夹的名称


好的,让我们检查一下这个规则:

RewriteRule ^users/user/([a-z0-9-_]+) /beta/users.php?user=$1 [NC]

但请始终不要忘记上的
重写引擎,并对正在发生的事情进行评论。您必须检查的URL是我们试图重新映射的不存在的URL。(示例:domain.com/users/user/name,结尾不带斜杠。)

检查我的更新答案。它将为您提供uses/user/username格式。我只是单独尝试了一下,当我尝试访问domain.com/users/user/username时,我得到了404。我正在运行一个简单的测试来回显页面上的用户名值…@user2252323好的,看看你的文件管理器,你的/users.php所在的当前文件夹的名称是什么?它位于GoDaddy上的共享服务器上,但看起来目录是“html”。来吧,仔细检查一下。cPanel中的index.php位于/public_html文件夹中,其他主机上的另一个索引位于/home/www/example.com中。现在你的是什么?我特意生成了一个错误来查看路径,结果是:
/home/content/72/9996272/html/beta/index.php
。我正在一个子目录“beta”上测试.htaccess,该子目录链接到根目录“beta”中的一个文件夹
RewriteRule ^users/user/([a-z0-9-_]+) /beta/users.php?user=$1 [NC]