尝试为一个简单的MVC网站提供漂亮的URL,我正在Wampserver本地开发,仅用于学习目的。我有以下.htaccess代码设置,以便任何URL请求被路由回index.php控制器,该控制器根据'page'的$ _GET值提供不同的内容。
RewriteEngine on
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !=D
RewriteCond %{REQUEST_FILENAME} !=F
RewriteRule ^([-\w.]+)$ index.php\?page=$1 [R=302,L]
我将它设置为R = 302,这样我就可以看到它重定向到哪里了。我设置的主机名是stock.com。如果我去stock.com,这很好。但如果我尝试访问stock.com/register,我会被重定向到stock.com/index.php?page=index.php。如果我从正则表达式中取出点,这一切都可以正常工作,但是我不能在页面/文件名中包含点。没有必要,但我这样做是为了学习目的,所以我想知道解决方案是什么。我试过逃避点而不是。谢谢!
答案 0 :(得分:1)
一些语法问题。试试这段代码:
RewriteEngine on
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([-\w.]+)$ index.php?page=$1 [R=302,L,QSA]