给定网址的HTACCESS

时间:2017-07-25 10:34:14

标签: php .htaccess url mod-rewrite

我试图为新网址写REWRITERULE。

旧网址:https://www.ex.com/hindu-bbb-10/2

老htaccess:

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

通过使用上面的htaccess,我可以从REQUEST获取值,如folllows

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

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

新网址:https://www.ex.com/hindu-bbb-10?pageno=2

新的htaccess:

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

获得此结果[cat] => hindu-bbb-10

我无法获得类似[cat] => 2 [title] => hindu-bbb-10的值,这是旧的网址。

如何使用新网址" https://www.ex.com/hindu-bbb-10?pageno=2"

获取[cat] => 2 [title] => hindu-bbb-10等值

2 个答案:

答案 0 :(得分:0)

如果您希望结果为:

https://www.ex.com/hindu-bbb-10?pageno=2

然后你必须改变你的重写规则以适应那个。你有正确的想法,但是当你想要使用某些变量时,你可以像你一样使用$2$1

重写规则应该是

的内容
RewriteRule ^(.+?)/(.+?)(.+?)$ seo/index.php?title=$2?pageno=$1 [NC,L]

如果您想将cat更改为pageno=2,我将使用您设法获得的变量创建一个数组。 E.g。

$arr = ['title' => $_REQUEST['title'], 'pageno' => $_REQUEST['cat'];

这应该将您的网址更改为您希望的方式。如果这不起作用,那么我建议你阅读.htaccess文档:

https://httpd.apache.org/docs/current/howto/htaccess.html

答案 1 :(得分:0)

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

您需要从QUERY_STRING获取价值:

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]