我是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看起来很好,内容和其他一切都是如此。有什么想法吗?
答案 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