我有一个工作的RewriteRule,可以将任何页面重写为文字网址:
RewriteRule ^(.+)$ index.php?page=$1 [QSA,L]
问题是我要添加page = $ 1& category = $ 2并将其转换为...明显... / category / page
我尝试了这个,但它似乎不起作用:
RewriteRule ^([^/]+)/([^/]+)$ index.php?page=$1&category=$2 [QSA,L]
我应该注意到我仍然希望能够访问没有类别的页面 - 例如/ login或/ about应该转到index.php?page = about例如
答案 0 :(得分:2)
您的解决方案如下。
RewriteRule ^([0-9a-zA-Z_\-]+)/([0-9a-zA-Z_\-]+)$ index.php?page=$1&category=$2 [NC,L]
输入网址:http://www.test.com/my-cat/my-page
,它将被视为:http://www.test.com/index.php?page=my-cat&category=my-page
答案 1 :(得分:1)
试试这个
#https://www.example.com/index.php?category=9&page=CBSE `#https://www.example.com/category/page/CBSE`
Method One:
#use this code for generate new url
RewriteRule ^index/([0-9a-zA-Z]+)/([0-9a-zA-Z]+)$ index.php?category=$1&page=$2 [NC,L]
Method Two :
RewriteRule ^index/([0-9a-zA-Z]+)/([0-9a-zA-Z]+)$ index.php?category=$1&page=$2
Note :Hit Your Url index.php?category=$1&page=$2 to convert $i & $2 Create Dynamic Url Your Id Bases
答案 2 :(得分:1)
尝试使用下面的内容,我们指示apache不要查找目录或文件。
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([^/]+)/([^/]+)$ index.php?page=$1&category=$2 [QSA,L]
答案 3 :(得分:1)
这对你有用。
RewriteEngine On
RewriteRule ^([^/]*)/([^/]*)$ /index.php?category=$1&page=$2 [L]
如果你想轻松生成重写网址,有很多在线重写网址生成器。
答案 4 :(得分:0)
感谢所有的贡献......
因为我需要同时满足/ page和/category/page ...我最终这样做了:
RewriteRule ^([0-9a-zA-Z_\-][^/]+)$ index.php?page=$1 [N]
RewriteRule ^([0-9a-zA-Z_\-]+)/([0-9a-zA-Z_\-]+)$ index.php?category=$1&page=$2 [L]
但这只是解决方案的一半,因为我需要修改我的PHP以检查类别是否已设置,如果不匹配则发送404。否则/invalid_category/valid_page
仍然有用。
首先,这些想法让我朝着正确的方向前进,谢谢。