Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/239.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 对给定url的访问权限_Php_.htaccess_Url_Mod Rewrite - Fatal编程技术网

Php 对给定url的访问权限

Php 对给定url的访问权限,php,.htaccess,url,mod-rewrite,Php,.htaccess,Url,Mod Rewrite,我正在尝试为新url编写重写规则 旧网址: 旧htaccess: RewriteCond %{HTTP_HOST} ex.com$ [NC] RewriteCond %{REQUEST_URI} (bbb|ggg) RewriteRule ^(.+?)/(.+?)(/?)$ seo/index.php?cat=$2&title=$1 [NC,L] RewriteCond %{HTTP_HOST} ex.com$ [NC] RewriteCond %{REQUEST_URI} (bbb

我正在尝试为新url编写重写规则


旧网址:

旧htaccess:

RewriteCond %{HTTP_HOST} ex.com$ [NC]
RewriteCond %{REQUEST_URI} (bbb|ggg)
RewriteRule ^(.+?)/(.+?)(/?)$ seo/index.php?cat=$2&title=$1 [NC,L]
RewriteCond %{HTTP_HOST} ex.com$ [NC]
RewriteCond %{REQUEST_URI} (bbb|ggg)
RewriteRule ^(.+?)/(.+?)(.+?)$ seo/index.php?cat=$2?pageno=$1 [NC,L]
通过使用上述htaccess,我可以从
REQUEST
获得如下值

[cat] => 2 [title] => hindu-bbb-10

我试了很多,其中一个如下

新网址:

新htaccess:

RewriteCond %{HTTP_HOST} ex.com$ [NC]
RewriteCond %{REQUEST_URI} (bbb|ggg)
RewriteRule ^(.+?)/(.+?)(/?)$ seo/index.php?cat=$2&title=$1 [NC,L]
RewriteCond %{HTTP_HOST} ex.com$ [NC]
RewriteCond %{REQUEST_URI} (bbb|ggg)
RewriteRule ^(.+?)/(.+?)(.+?)$ seo/index.php?cat=$2?pageno=$1 [NC,L]
得到这样的结果
[cat]=>indu-bbb-10

我无法获得类似于
[cat]=>2[title]=>indu-bbb-10
的值,这是旧url的形式


如果希望结果是:

https://www.ex.com/hindu-bbb-10?pageno=2
然后你必须改变你的重写规则来适应它。这样做的想法是正确的,但是当您希望使用某些变量时,可以使用
$2
$1

重写规则应该与

RewriteRule ^(.+?)/(.+?)(.+?)$ seo/index.php?title=$2?pageno=$1 [NC,L]
如果您想将cat更改为
pageno=2
,我将使用您设法获得的变量创建一个数组。例如

$arr = ['title' => $_REQUEST['title'], 'pageno' => $_REQUEST['cat'];
这会将您的url更改为您想要的方式。如果这不起作用,我建议您阅读
.htaccess
文档:


如果您希望结果是:

https://www.ex.com/hindu-bbb-10?pageno=2
然后你必须改变你的重写规则来适应它。这样做的想法是正确的,但是当您希望使用某些变量时,可以使用
$2
$1

重写规则应该与

RewriteRule ^(.+?)/(.+?)(.+?)$ seo/index.php?title=$2?pageno=$1 [NC,L]
如果您想将cat更改为
pageno=2
,我将使用您设法获得的变量创建一个数组。例如

$arr = ['title' => $_REQUEST['title'], 'pageno' => $_REQUEST['cat'];
这会将您的url更改为您想要的方式。如果这不起作用,我建议您阅读
.htaccess
文档:


用于此URL
https://www.ex.com/hindu-bbb-10?pageno=2

您需要从
查询\u字符串
中捕获值:

RewriteCond %{HTTP_HOST} ex.com$ [NC]
RewriteCond %{REQUEST_URI} (?:bbb|ggg)
RewriteCond %{QUERY_STRING} ^pageno=(\d+) [NC]
RewriteRule ^([^/]+)/?$ seo/index.php?cat=%1&&title=$1 [NC,QSA,L]

对于此URL
https://www.ex.com/hindu-bbb-10?pageno=2

您需要从
查询\u字符串
中捕获值:

RewriteCond %{HTTP_HOST} ex.com$ [NC]
RewriteCond %{REQUEST_URI} (?:bbb|ggg)
RewriteCond %{QUERY_STRING} ^pageno=(\d+) [NC]
RewriteRule ^([^/]+)/?$ seo/index.php?cat=%1&&title=$1 [NC,QSA,L]