我正在使用custom.conf文件进行重写和codeigniter以获取网站的某些功能,主要是文章。在使用mod_rewrite时获取原始REQUEST_URI AND mod_proxy
我的原始网址被重写,所以我有http://example.com/article-a101,它使用custom.conf文件来重写codeigniter/article/read/101。我想我必须使用mod_rewrite中的[P]标志将其作为代理调用发送,以使其在codeigniters .htaccess文件中再次重写。一旦它碰到代码点火器.htaccess,它将使用该mod重写结构来调用索引文件,并使用文章控制器和101中发送的读取函数作为参数。
我想知道的是我如何获得地址栏中的原始URL,因为它不在$ _SERVER变量中。由于我在第一次重写时使用了[P],因此request_uri具有codeigniter/article/read/101。
custom.conf
RewriteRule ^/([_a-zA-Z0-9-]+)-a([0-9]+)$ /codeigniter/article/read/$2 [P,L]
codeigniters .htaccess, fairly basic
RewriteRule ^(.*)$ index.php?/$1 [L]
这是我目前的解决方案,我知道必须有
RewriteRule ^/([_a-zA-Z0-9-]+)-a([0-9]+)$ /codeigniter/article/read/$2?orig_url=%{REQUEST_URI}&%{QUERY_STRING} [P,L]
这撑对用户隐藏一个更好的方法,我可以访问通过查询字符串中的原始地址,但没有按”这似乎是一个优雅的解决方案。