mod_rewrite用于名称字段

时间:2012-04-07 19:18:20

标签: .htaccess mod-rewrite

我是mod_rewrite中的新手,我一直在浏览一些阅读如何处理这个问题的网站,我所能找到的就是当get变量是数字而没有关于字符串的时候,结果就是结束了我的脑袋。

我想要做的是将display.php?name=blahblah123重写为display/blahblah123

与答案一起,我会喜欢一些我可以自己掌握mod_rewrite的网站。

由于

编辑:

通过更多搜索,我想出了这个

RewriteEngine On
RewriteBase /

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

上面的代码有效,但由于某种原因,我得到的页面没有CSS。我看到的CSS显示了Hostgator的404页面CSS。但HTML看起来很好,内容和其他一切都是如此。有什么想法吗?

2 个答案:

答案 0 :(得分:1)

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

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

而不是

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

答案 1 :(得分:1)

为了清楚起见,mod_rewrite是在apache内部发生的事情。我发现有时人们不明白它做什么和不做什么。它不会输出您输入的URL并从

更改它
display.php?name=blahblah123

要     显示/ blahblah123

然而,允许某人从您的网站发出请求显示/ 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