这是我的网址:
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]
非常感谢任何帮助。如果你可以解释我错过了什么或者我做错了什么,这将有助于我更多...我正在努力学习如何做到这一点,只是给我剪切和粘贴方法只会帮助我今天。
谢谢,这对我来说意义重大!
答案 0 :(得分:1)
RewriteEngine on
RewriteRule ^([^/\.]+)\.html/?$ php/statePage.php?region_slug=$1 [L]
要指出两点:
在重写语法中使用.
时,它表示任何字符。因此,您当前的规则是替换任何不是任何字符的内容,然后是“.html”。要解决此问题,请像\.
一样逃避您的点。重写语法中有几个特殊字符,例如this。注意它们会对你有所帮助。
其次,我不确定这是否是重写佳能,但我从未亲自在重写规则开始之前使用正斜杠,这可能会也可能不会影响规则本身。鼓励任何对此做出澄清的用户回复。
编辑:以下字符在重写语法中标记为特殊字符(以及所有正则表达式),因此需要使用反斜杠\
进行转义为了按字面意思使用 - [\^$.|?*+()
此外,您可能会发现this reference对于进一步理解正则表达式的正确语法非常有用。