2011-09-30 94 views
0

这里是网址,我有工作:mod_rewrite的...重命名的网址,并让他们正常工作

example.com/php/statePage.php?region_slug=new-york-colleges

这是我想获得的URL显示为:

example.com/new-york-colleges.html

到目前为止,我已经尝试了几件事情,我想我正在接近,但这是我的第一个PHP/MySQL站点,并且第一次使用.htaccess。

这里是到目前为止我的。htaccess:

RewriteEngine叙述上

重写规则1^/([^ /。] +)的HTML $的PHP/statePage.php region_slug = $ [L。? ]

任何帮助将不胜感激。如果你能解释我错过了什么,或者我做错了什么,那将会帮助我更多...我正在努力学习如何做到这一点,并简单地给我剪切和粘贴方法只会帮助我今天。

谢谢,这对我来说意义重大!

回答

1
RewriteEngine on 
RewriteRule ^([^/\.]+)\.html/?$ php/statePage.php?region_slug=$1 [L] 

有两点需要指出:

.在重写语法使用,它代表任何字符。所以你现在的规则说取代任何不是任何字符的东西,接着是'.html'。要解决这个问题,请像\.这样逃避你的点。在这种重写语法中有几个特殊字符。这会让你注意到它们。其次,我不确定这是不是重写了,但是我从来没有在重写规则开始前亲自使用过正斜杠,这可能影响规则本身,也可能不影响规则本身。鼓励任何澄清此事的用户回复。

编辑:下列字符标记为重写语法特殊字符(和所有的正则表达式,对于这个问题),因此,需要在为了用反斜杠\逃到用文字代替 - [\^$.|?*+()

此外,您可能会发现this reference有助于进一步了解正则表达式的正确语法。

+1

谢谢你......我的网站正在工作。我不完全确定重写规范是什么,但是开始时的原因是因为我在尝试寻求帮助(试错法)之前尝试了很多事情来查看它是否有效。感谢您的澄清。我开始熟悉正则表达式,我使用了很多:http://regexpal.com/ – NotJay