Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/18.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 URL正在工作,但页面已被选中';t载荷_Php_Regex_Apache_.htaccess_Mod Rewrite - Fatal编程技术网

Php .htaccess URL正在工作,但页面已被选中';t载荷

Php .htaccess URL正在工作,但页面已被选中';t载荷,php,regex,apache,.htaccess,mod-rewrite,Php,Regex,Apache,.htaccess,Mod Rewrite,我正在尝试为我的网站URL创建一个.htaccess脚本,该脚本正在运行,但页面无法加载未找到 在此服务器上找不到请求的URL/Site/users/yax。 我想出现 像这样:http://localhost/Site/users/name当单击但无法加载页面时 Apache代码: RewriteEngine on RewriteBase /Site/users/ RewriteCond %{THE_REQUEST} /users\.php\?user=([^\s&]+) [NC]

我正在尝试为我的网站URL创建一个
.htaccess
脚本,该脚本正在运行,但页面无法加载<代码>未找到 在此服务器上找不到请求的URL/Site/users/yax。

我想
出现 像这样:
http://localhost/Site/users/name
当单击但无法加载页面时

Apache代码:

RewriteEngine  on
RewriteBase /Site/users/

RewriteCond %{THE_REQUEST} /users\.php\?user=([^\s&]+) [NC]
RewriteRule ^ %1? [R=302,L]

RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([a-zA-Z_]+)$ users.php?user=$1 [L] 
提前感谢。

将规则更改为:

RewriteEngine  on
RewriteBase /Site/users/

RewriteCond %{THE_REQUEST} /users\.php\?user=([^\s&]+) [NC]
RewriteRule ^ %1? [R=302,L]

RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^users/([a-zA-Z_]+)$ users.php?user=$1 [L] 
如果htaccess文件位于
/Site/
文件夹中,则“用户”将是重写规则所匹配的URI的一部分,而不管您将重写基础设置为什么

另外,您应该将链接更改为
http://localhost/Site/users/name
不要每次都添加额外的往返重定向。

尝试以下代码:

Options +FollowSymLinks -MultiViews
RewriteEngine  on
RewriteBase /Site/

RewriteCond %{THE_REQUEST} /(users)/user\.php\?user=([^\s&]+) [NC]
RewriteRule ^ %1/%2? [R=302,L]

RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(users)/(\w+)/?$ $1/user.php?user=$2 [L,QSA] 

假设
/Site/users/user.php
是一个真实的文件,并且它在URI中接受user=name

您的HTML:

<a href="http://localhost/Site/users/name">View User</a>

我相信
users.php
.htaccess
都存在于
/Site/users/
路径中?否。
.htaccess
位于
Site
文件夹中。哦,好的,这就是原因。下面提供了一个答案。@anubhava:这就解决了问题。谢谢你让我开心。既然OP的实际URL是:
http://localhost/Site/users/user.php?user=username
此.htaccess位于
/Site/
文件夹中,该文件夹将
用户
文件夹作为子文件夹。两条规则都采用了相同的概念。
RewriteEngine on
RewriteRule  ^Site/users/(.*)$  /Site/users/user.php?user=$1