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 from?p=激活&;id=57A5dz进入用户/activate/id/57A5dz_.htaccess - Fatal编程技术网

.Htaccess from?p=激活&;id=57A5dz进入用户/activate/id/57A5dz

.Htaccess from?p=激活&;id=57A5dz进入用户/activate/id/57A5dz,.htaccess,.htaccess,我想将我的URL从重写为。 我在谷歌搜索了很多,但都没找到。 我总是看到404页 我的.htaccess: RewriteEngine On RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^(.*)$ \?p=$1 [QSA,L] RewriteRule ^(.*)/(.*)/$ ?page=$1&id=$2 RewriteCond %{REQUEST_URI}

我想将我的URL从重写为。 我在谷歌搜索了很多,但都没找到。 我总是看到404页

我的.htaccess:


RewriteEngine On

RewriteCond %{REQUEST_FILENAME} !-d

RewriteCond %{REQUEST_FILENAME} !-f

RewriteRule ^(.*)$ \?p=$1 [QSA,L]

RewriteRule ^(.*)/(.*)/$ ?page=$1&id=$2

RewriteCond %{REQUEST_URI} ^/web-gallery/images/

RewriteRule ^images/(.+)$ /web-gallery/images/$1
我还试图补充一点:

RewriteRule^([^/]+)/(\d+)/*$$1&id=$2[L]


首先,让我们仔细看看你的规则,了解他们所做的事情。

RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^(.*)$ \?p=$1 [QSA,L]
如果请求的url不是目录,请求的文件不是文件,并且它是主机名后面和查询字符串匹配之前的部分,请在内部将其重写为任何内容,并将与查询字符串匹配的内容追加到
p=
+中。对
example.com/cookies?are=evil
的请求将被重写为
example.com/cookies?are=evil&p=cookies

RewriteRule ^(.*)/(.*)/$ ?page=$1&id=$2
如果请求的url至少包含2个路径段,请在内部将其重写到同一页面,并将查询字符串替换为最后一个路径段之前的page=everything&id=后面的内容

RewriteCond %{REQUEST_URI} ^/web-gallery/images/
RewriteRule ^images/(.+)$ /web-gallery/images/$1
如果请求的url(或重写的url)以
web gallery/images
开头,请将
images/something
重写为
web gallery/images/something
。但是,没有与rewriterule的条件和第一个参数匹配的url,因此永远不会执行此规则

RewriteRule ^([^/]+)/(\d+)/.*$ $1&id=$2 [L]
如果请求的url有两个以上的路径段,其中第一个路径段不包含
/
,第二个路径段仅包含数字,则删除路径的其余部分,并在内部将url重写为第一个路径段所在的路径段,然后在查询字符串外加一个&并添加与之匹配的id=数字<代码>http://example.com/test/1/some/thing?cookies=evil&butter=too将被重写为
http://example.com/test&id=1?var=2&butter=too


回头看看你想要什么。您希望用户看到
http://www.domain.com/users/activate/id/57A5dz
。这对服务器没有意义,因此您必须在内部重写它,使其对服务器有意义<代码>http://www.domain.com/index.php?p=activate&id=57A5dz应该这样做。我们希望在第一个url上匹配,并在第二个url上使用这些匹配。以下(未经测试的)重写规则应该可以为您提供帮助。我希望上面的解释能让你更好地理解这些规则是如何工作的

RewriteRule ^users/([^/]+)/id/([^/]+)/?$ /index.php?p=$1&id=$2 [L]