我的文件夹结构如下
我有一个名为all_docs.php
的文件夹,里面有2个文件:
level.php
和rewrite ^/doc-([^/]*)-([^/]*)/?$ /doc/all_docs.php?title=$1&lang=$2 last;
all_docs有2个参数,我有这个重写规则:
all_docs.php?title=fashion&lang=en
这使得像
这样的网址成为可能/doc-fashion-en/
看起来像:
/doc-fashion-en/level.php
问题是我还想访问doc文件夹中的level.php但是 在重写之后我不能因为nginx请求:
select news.title,news.id,news.agency,news.cat,news.regTime,news.img,news.view,news.like,
newsagency.title as agency_title,
site_cat.title as cat_title
from news
right join site_cat
on news.cat = site_cat.id
right join newsagency
on news.agency = newsagency.id
where
news.regTime>=1426883460 and
news.cat = 2 and
news.agency =1 and
(
(news.title like '%مذاکرات هسته ای%' or news.tag like '%مذاکرات هسته ای%' or news.des like '%مذاکرات هسته ای%')
or
(
(news.tag like '%مذاکرات%' or news.tag like '%مذاکرات%' or news.tag like '%مذاكرات%' ) and
(news.tag like '%هسته%' or news.tag like '%هسته%' or news.tag like '%ةستة%' ) and
(news.tag like '%ای%' or news.tag like '%ای%' or news.tag like '%اي%' )
) or
(
(news.title like '%مذاکرات%' or news.title like '%مذاکرات%' or news.title like '%مذاكرات%' ) and
(news.title like '%هسته%' or news.title like '%هسته%' or news.title like '%ةستة%' ) and
(news.title like '%ای%' or news.title like '%ای%' or news.title like '%اي%' )
) or
(
(news.des like '%مذاکرات%' or news.des like '%مذاکرات%' or news.des like '%مذاكرات%' ) and
(news.des like '%هسته%' or news.des like '%هسته%' or news.des like '%ةستة%' ) and
(news.des like '%ای%' or news.des like '%ای%' or news.des like '%اي%' )
)
)
order by news.regTime desc
limit 0,15
不存在
我试过了 重写^ / doc - ([^ /] ) - ([^ /] )/ level.php /doc/level.php?$args;
没有成功,level.php有一些需要传递的get参数 这就是我使用$ args的原因。
任何帮助将不胜感激
答案 0 :(得分:0)
这些重写规则适合您:
rewrite ^/doc-([^/]+)-([^/]+)/?$ /doc/all_docs.php?title=$1&lang=$2 last;
rewrite ^/doc-[^/]+-[^/]+/level.php(.*)$ /doc/level.php$1 last;
如果您确定至少应该有一个符号,请考虑使用+
代替*
。实际上,^/doc-([^/]*)-([^/]*)/?$
匹配/doc--
。不确定是否有意。