Php 对给定url的访问权限
我正在尝试为新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
旧网址: 旧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]