我的mod_rewrite的规则不能解决PHP变量 [英] My mod_rewrite rules do not resolve PHP variables

查看:150
本文介绍了我的mod_rewrite的规则不能解决PHP变量的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一个有趣的情况。我已经配置了一个基本的LAMP服务器与外部公司为我们提供一些code。一切正常,除了PHP专门改写。

I have an interesting situation. I've configured a basic LAMP server and an external company is providing us some code. Everything works except PHP rewrites specifically.

我已经成功地配置重写并能做到像hello.html的基本重写 - > redir.html。
我也通过将LogLevel的达trace6证实了这一点,我看到重写被激活。

I've successfully configured rewrites and can do basic rewrites like hello.html -> redir.html. I've also confirmed this by turning LogLevel up to trace6 and I see rewrite being active.

麻烦自带的PHP变量。这似乎只是不解决这些问题。

the trouble comes with php variables. It seems to just not resolve them.

我有测试除去所有其他规则下面的简化.htaccess文件

I have the following simplified .htaccess file with all other rules removed for testing

<ifModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^news/(.*)/(.*)/(.*)/$ news.php?department=$1&newsid=$2&newstitle=$3 [L]
RewriteRule ^$ index.php?page=home [L]

</ifModule>

现在,如果我输入我的网址
的http:// Web服务器/新闻/资讯/ 153 / newsstory

now if I enter my URL http://webserver/news/it/153/newsstory

我希望被重定向到

http://webserver/news.php?department=it&newsid=153&newstitle=newsstory

然而,什么情况是第二条规则捕获它。

however, what happens is the second rule catches it.

这是棘手的我,因为我提供的服务器基础设施,而不是写code(外部提供)。我们code供应商表示,他们的工作和侧面我们看到工作演示,所以我一直在排序从我们不知何故遗失包或CONFIGS的角度进行故障排除它。

this is tricky for me, as I'm providing the server infrastructure and not writing the code (externally supplied). Our code supplier says it works their side and we've seen working demos, so I've been sort of troubleshooting it from a 'we are missing packages or configs somehow' angle.

据我可以在网上告诉,如果mod_rewrite的工作,它应该...的工作。

As far as I can tell online, if mod_rewrite is working, it should... work.

一个不正确的再导向的日志转储

a log dump of an incorrect redir

[perdir /var/www/itnews/] add path info postfix: /var/www/itnews/news.php -> /var/www/itnews/news.php/it/153/newsstory
[perdir /var/www/itnews/] strip per-dir prefix: /var/www/itnews/news.php/it/153/newsstory -> news.php/it/153/newsstory
[perdir /var/www/itnews/] applying pattern '^news/(.*)/(.*)/(.*)$' to uri 'news.php/it/153/newsstory'
[perdir /var/www/itnews/] add path info postfix: /var/www/itnews/news.php -> /var/www/itnews/news.php/it/153/newsstory
[perdir /var/www/itnews/] strip per-dir prefix: /var/www/itnews/news.php/it/153/newsstory -> news.php/it/153/newsstory
[perdir /var/www/itnews/] applying pattern '^$' to uri 'news.php/it/153/newsstory'
[perdir /var/www/itnews/] pass through /var/www/itnews/news.php
[perdir /var/www/itnews/] add path info postfix: /var/www/itnews/news.php -> /var/www/itnews/news.php/it/153/newsstory
[perdir /var/www/itnews/] strip per-dir prefix: /var/www/itnews/news.php/it/153/newsstory -> news.php/it/153/newsstory
[perdir /var/www/itnews/] applying pattern '^news/(.*)/(.*)/(.*)$' to uri 'news.php/it/153/newsstory'
[perdir /var/www/itnews/] add path info postfix: /var/www/itnews/news.php -> /var/www/itnews/news.php/it/153/newsstory
[perdir /var/www/itnews/] strip per-dir prefix: /var/www/itnews/news.php/it/153/newsstory -> news.php/it/153/newsstory
[perdir /var/www/itnews/] applying pattern '^$' to uri 'news.php/it/153/newsstory'
[perdir /var/www/itnews/] pass through /var/www/itnews/news.php
[perdir /var/www/itnews/] add path info postfix: /var/www/itnews/it -> /var/www/itnews/it/153/newsstory
[perdir /var/www/itnews/] strip per-dir prefix: /var/www/itnews/it/153/newsstory -> it/153/newsstory
[perdir /var/www/itnews/] applying pattern '^news/(.*)/(.*)/(.*)$' to uri 'it/153/newsstory'
[perdir /var/www/itnews/] add path info postfix: /var/www/itnews/it -> /var/www/itnews/it/153/newsstory
[perdir /var/www/itnews/] strip per-dir prefix: /var/www/itnews/it/153/newsstory -> it/153/newsstory
[perdir /var/www/itnews/] applying pattern '^$' to uri 'it/153/newsstory'
[perdir /var/www/itnews/] pass through /var/www/itnews/it
[perdir /var/www/itnews/] strip per-dir prefix: /var/www/itnews/images/logo.jpg -> images/logo.jpg, referer: http://webserver/news/it/153/newsstory
[perdir /var/www/itnews/] applying pattern '^news/(.*)/(.*)/(.*)$' to uri 'images/logo.jpg', referer: http://webserver/news/it/153/newsstory
[perdir /var/www/itnews/] strip per-dir prefix: /var/www/itnews/images/logo.jpg -> images/logo.jpg, referer: http://webserver/news/it/153/newsstory
[perdir /var/www/itnews/] applying pattern '^$' to uri 'images/logo.jpg', referer: http://webserver/news/it/153/newsstory
[perdir /var/www/itnews/] pass through /var/www/itnews/images/logo.jpg, referer: http://webserver/news/it/153/newsstory
[perdir /var/www/itnews/] strip per-dir prefix: /var/www/itnews/css/bootstrap.min.css -> css/bootstrap.min.css, referer: http://webserver/news/it/153/newsstory
[perdir /var/www/itnews/] applying pattern '^news/(.*)/(.*)/(.*)$' to uri 'css/bootstrap.min.css', referer: http://webserver/news/it/153/newsstory
[perdir /var/www/itnews/] strip per-dir prefix: /var/www/itnews/css/bootstrap.min.css -> css/bootstrap.min.css, referer: http://webserver/news/it/153/newsstory
[perdir /var/www/itnews/] applying pattern '^$' to uri 'css/bootstrap.min.css', referer: http://webserver/news/it/153/newsstory
[perdir /var/www/itnews/] pass through /var/www/itnews/css/bootstrap.min.css, referer: http://webserver/news/it/153/newsstory
[perdir /var/www/itnews/] strip per-dir prefix: /var/www/itnews/css/style.css -> css/style.css, referer: http://webserver/news/it/153/newsstory
[perdir /var/www/itnews/] applying pattern '^news/(.*)/(.*)/(.*)$' to uri 'css/style.css', referer: http://webserver/news/it/153/newsstory
[perdir /var/www/itnews/] strip per-dir prefix: /var/www/itnews/css/style.css -> css/style.css, referer: http://webserver/news/it/153/newsstory
[perdir /var/www/itnews/] applying pattern '^$' to uri 'css/style.css', referer: http://webserver/news/it/153/newsstory
[perdir /var/www/itnews/] pass through /var/www/itnews/css/style.css, referer: http://webserver/news/it/153/newsstory
[perdir /var/www/itnews/] strip per-dir prefix: /var/www/itnews/js/bootstrap.min.js -> js/bootstrap.min.js, referer: http://webserver/news/it/153/newsstory
[perdir /var/www/itnews/] applying pattern '^news/(.*)/(.*)/(.*)$' to uri 'js/bootstrap.min.js', referer: http://webserver/news/it/153/newsstory
[perdir /var/www/itnews/] strip per-dir prefix: /var/www/itnews/js/bootstrap.min.js -> js/bootstrap.min.js, referer: http://webserver/news/it/153/newsstory
[perdir /var/www/itnews/] applying pattern '^$' to uri 'js/bootstrap.min.js', referer: http://webserver/news/it/153/newsstory
[perdir /var/www/itnews/] pass through /var/www/itnews/js/bootstrap.min.js, referer: http://webserver/news/it/153/newsstory
[perdir /var/www/itnews/] strip per-dir prefix: /var/www/itnews/css/prettyCheckable.css -> css/prettyCheckable.css, referer: http://webserver/news/it/153/newsstory
[perdir /var/www/itnews/] applying pattern '^news/(.*)/(.*)/(.*)$' to uri 'css/prettyCheckable.css', referer: http://webserver/news/it/153/newsstory
[perdir /var/www/itnews/] strip per-dir prefix: /var/www/itnews/css/prettyCheckable.css -> css/prettyCheckable.css, referer: http://webserver/news/it/153/newsstory
[perdir /var/www/itnews/] applying pattern '^$' to uri 'css/prettyCheckable.css', referer: http://webserver/news/it/153/newsstory
[perdir /var/www/itnews/] pass through /var/www/itnews/css/prettyCheckable.css, referer: http://webserver/news/it/153/newsstory
[perdir /var/www/itnews/] strip per-dir prefix: /var/www/itnews/js/jquery-1.11.0.min.js -> js/jquery-1.11.0.min.js, referer: http://webserver/news/it/153/newsstory
[perdir /var/www/itnews/] applying pattern '^news/(.*)/(.*)/(.*)$' to uri 'js/jquery-1.11.0.min.js', referer: http://webserver/news/it/153/newsstory
[perdir /var/www/itnews/] strip per-dir prefix: /var/www/itnews/js/jquery-1.11.0.min.js -> js/jquery-1.11.0.min.js, referer: http://webserver/news/it/153/newsstory
[perdir /var/www/itnews/] applying pattern '^$' to uri 'js/jquery-1.11.0.min.js', referer: http://webserver/news/it/153/newsstory
[perdir /var/www/itnews/] pass through /var/www/itnews/js/jquery-1.11.0.min.js, referer: http://webserver/news/it/153/newsstory
[perdir /var/www/itnews/] strip per-dir prefix: /var/www/itnews/plugins/timthumb.php -> plugins/timthumb.php, referer: http://webserver/news/it/153/newsstory
[perdir /var/www/itnews/] applying pattern '^news/(.*)/(.*)/(.*)$' to uri 'plugins/timthumb.php', referer: http://webserver/news/it/153/newsstory
[perdir /var/www/itnews/] strip per-dir prefix: /var/www/itnews/plugins/timthumb.php -> plugins/timthumb.php, referer: http://webserver/news/it/153/newsstory
[perdir /var/www/itnews/] applying pattern '^$' to uri 'plugins/timthumb.php', referer: http://webserver/news/it/153/newsstory
[perdir /var/www/itnews/] pass through /var/www/itnews/plugins/timthumb.php, referer: http://webserver/news/it/153/newsstory
[perdir /var/www/itnews/] strip per-dir prefix: /var/www/itnews/plugins/timthumb.php -> plugins/timthumb.php, referer: http://webserver/news/it/153/newsstory
[perdir /var/www/itnews/] applying pattern '^news/(.*)/(.*)/(.*)$' to uri 'plugins/timthumb.php', referer: http://webserver/news/it/153/newsstory
[perdir /var/www/itnews/] strip per-dir prefix: /var/www/itnews/plugins/timthumb.php -> plugins/timthumb.php, referer: http://webserver/news/it/153/newsstory
[perdir /var/www/itnews/] applying pattern '^$' to uri 'plugins/timthumb.php', referer: http://webserver/news/it/153/newsstory
[perdir /var/www/itnews/] pass through /var/www/itnews/plugins/timthumb.php, referer: http://webserver/news/it/153/newsstory
[perdir /var/www/itnews/] strip per-dir prefix: /var/www/itnews/plugins/timthumb.php -> plugins/timthumb.php, referer: http://webserver/news/it/153/newsstory
[perdir /var/www/itnews/] applying pattern '^news/(.*)/(.*)/(.*)$' to uri 'plugins/timthumb.php', referer: http://webserver/news/it/153/newsstory
[perdir /var/www/itnews/] strip per-dir prefix: /var/www/itnews/plugins/timthumb.php -> plugins/timthumb.php, referer: http://webserver/news/it/153/newsstory
[perdir /var/www/itnews/] applying pattern '^$' to uri 'plugins/timthumb.php', referer: http://webserver/news/it/153/newsstory
[perdir /var/www/itnews/] pass through /var/www/itnews/plugins/timthumb.php, referer: http://webserver/news/it/153/newsstory
[perdir /var/www/itnews/] strip per-dir prefix: /var/www/itnews/plugins/timthumb.php -> plugins/timthumb.php, referer: http://webserver/news/it/153/newsstory
[perdir /var/www/itnews/] applying pattern '^news/(.*)/(.*)/(.*)$' to uri 'plugins/timthumb.php', referer: http://webserver/news/it/153/newsstory
[perdir /var/www/itnews/] strip per-dir prefix: /var/www/itnews/plugins/timthumb.php -> plugins/timthumb.php, referer: http://webserver/news/it/153/newsstory
[perdir /var/www/itnews/] applying pattern '^$' to uri 'plugins/timthumb.php', referer: http://webserver/news/it/153/newsstory
[perdir /var/www/itnews/] pass through /var/www/itnews/plugins/timthumb.php, referer: http://webserver/news/it/153/newsstory
[perdir /var/www/itnews/] strip per-dir prefix: /var/www/itnews/plugins/timthumb.php -> plugins/timthumb.php, referer: http://webserver/news/it/153/newsstory
[perdir /var/www/itnews/] applying pattern '^news/(.*)/(.*)/(.*)$' to uri 'plugins/timthumb.php', referer: http://webserver/news/it/153/newsstory
[perdir /var/www/itnews/] strip per-dir prefix: /var/www/itnews/plugins/timthumb.php -> plugins/timthumb.php, referer: http://webserver/news/it/153/newsstory
[perdir /var/www/itnews/] applying pattern '^$' to uri 'plugins/timthumb.php', referer: http://webserver/news/it/153/newsstory
[perdir /var/www/itnews/] pass through /var/www/itnews/plugins/timthumb.php, referer: http://webserver/news/it/153/newsstory
[perdir /var/www/itnews/] strip per-dir prefix: /var/www/itnews/fonts/ocean_sans_std_book-webfont.woff -> fonts/ocean_sans_std_book-webfont.woff, referer: http://webserver/news/it/153/newsstory
[perdir /var/www/itnews/] applying pattern '^news/(.*)/(.*)/(.*)$' to uri 'fonts/ocean_sans_std_book-webfont.woff', referer: http://webserver/news/it/153/newsstory
[perdir /var/www/itnews/] strip per-dir prefix: /var/www/itnews/fonts/ocean_sans_std_book-webfont.woff -> fonts/ocean_sans_std_book-webfont.woff, referer: http://webserver/news/it/153/newsstory
[perdir /var/www/itnews/] applying pattern '^$' to uri 'fonts/ocean_sans_std_book-webfont.woff', referer: http://webserver/news/it/153/newsstory
[perdir /var/www/itnews/] pass through /var/www/itnews/fonts/ocean_sans_std_book-webfont.woff, referer: http://webserver/news/it/153/newsstory
[perdir /var/www/itnews/] strip per-dir prefix: /var/www/itnews/images/body-bg.jpg -> images/body-bg.jpg, referer: http://webserver/css/style.css?v=1.0.1
[perdir /var/www/itnews/] strip per-dir prefix: /var/www/itnews/images/body-bg.jpg -> images/body-bg.jpg, referer: http://webserver/css/style.css?v=1.0.1
[perdir /var/www/itnews/] applying pattern '^$' to uri 'images/body-bg.jpg', referer: http://webserver/css/style.css?v=1.0.1
[perdir /var/www/itnews/] pass through /var/www/itnews/images/body-bg.jpg, referer: http://webserver/css/style.css?v=1.0.1

相关报道:我刚刚通过所有的PHP页面可以找我走了,打开错误日志记录到最大。

RELATED: I've just gone through all the php pages I can find and turned on error logging to maximum.

我收到

Notice: Undefined index: department in /var/www/itnews/news.php on line 15

Notice: Undefined index: newsid in /var/www/itnews/news.php on line 18

Notice: Undefined index: archive in /var/www/itnews/pages/news-archive.php on line 16

Notice: Undefined variable: page in /var/www/itnews/pages/news-archive.php on line 28

在主页上。现在我想的东西在PHP是断层并重定向实际上是失败,因为PHP本身未能解决其变量。

on the main page. I'm now thinking that something in php is faulting out and the redirects are actually failing because php itself is failing to resolve its variables.

这是可能的?

推荐答案

此网址的http:// Web服务器/新闻/资讯/ 153 / newsstory 不能匹配您的第一条规则因为 / 结尾。

this url http://webserver/news/it/153/newsstory cannot match your first rule because of the / at the end.

# do not match
RewriteRule ^news/(.*)/(.*)/(.*)/$ news.php?department=$1&newsid=$2&newstitle=$3 [L]

# will match
RewriteRule ^news/(.*)/(.*)/(.*)$ news.php?department=$1&newsid=$2&newstitle=$3 [L]

您可以使用这个工具调试的.htaccess 文件。

这篇关于我的mod_rewrite的规则不能解决PHP变量的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆