0

我是完全的新手mod_rewrite,我一直在浏览一些网站,阅读如何处理这个问题,我所能找到的只是当 get 变量是数字而与字符串无关时,结果却超出了我的想象。

我想做的是重写display.php?name=blahblah123display/blahblah123

连同答案,我希望有一些网站可以让我对mod_rewrite自己有所了解。

谢谢

编辑:

随着更多的搜索,我想出了这个

RewriteEngine On
RewriteBase /

RewriteRule ^display/([a-z]+)$ display.php?name=$1 [L]

上面的代码有效,但由于某种原因,我得到的页面没有 CSS。我看到的 CSS 显示了 Hostgator 的 404 页面 CSS。但是 HTML 看起来不错,内容和其他一切也不错。任何的想法?

4

2 回答 2

1

尝试在 css 文件名前加一个“/”。

<link rel=".." href="/style.css".

代替

<link rel=".." href="style.css".
于 2012-04-07T19:52:25.273 回答
1

需要明确的是,mod_rewrite 是 apache 内部发生的事情。我发现有时人们不明白它做什么和不做什么。它不会采用您输出的 url 并将其更改为

display.php?name=blahblah123

显示/blahblah123

但是,它将允许某人从您的站点发出对 display/blahblah123 的请求并将其转换为 display.php?name=blahblah123,以便您的 display.php 脚本可以对其进行操作。

重写规则需要理解正则表达式。您对正则表达式了解得越多,mod_rewrite 对您来说就越容易。

作为初学者,这篇文章应该会有所帮助: http ://www.sitepoint.com/guide-url-rewriting/

对于您的具体问题,我可能会使用:

RewriteRule ^display/([a-zA-Z0-9]+)$ /display.php?name=$1 
于 2012-04-07T20:04:16.687 回答