mod_rewrite ...重命名网址并让它们正常工作

时间:2011-09-30 15:34:25

标签: php .htaccess mod-rewrite

这是我的网址:

  

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

以下是我要将网址显示为:

  

example.com/new-york-colleges.html

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

到目前为止,这是我的.htaccess:

  

上的RewriteEngine      

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

非常感谢任何帮助。如果你可以解释我错过了什么或者我做错了什么,这将有助于我更多...我正在努力学习如何做到这一点,只是给我剪切和粘贴方法只会帮助我今天。

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

1 个答案:

答案 0 :(得分:1)

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

要指出两点:

在重写语法中使用.时,它表示任何字符。因此,您当前的规则是替换任何不是任何字符的内容,然后是“.html”。要解决此问题,请像\.一样逃避您的点。重写语法中有几个特殊字符,例如this。注意它们会对你有所帮助。

其次,我不确定这是否是重写佳能,但我从未亲自在重写规则开始之前使用正斜杠,这可能会也可能不会影响规则本身。鼓励任何对此做出澄清的用户回复。

编辑:以下字符在重写语法中标记为特殊字符(以及所有正则表达式),因此需要使用反斜杠\进行转义为了按字面意思使用 - [\^$.|?*+()

此外,您可能会发现this reference对于进一步理解正则表达式的正确语法非常有用。