与htaccess我试图让我的网站urls干净。 我使用非常基本的URL:www.mysite.com/pagename.php(“pagename”是可变的)。
我想要www.mysite.com/pagename显示/pagename.php的内容
所以这是在我的htaccess文件现在:
Options +FollowSymlinks RewriteEngine On RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^([^\.]+)$ $1.php [NC,L]
但是我也希望我的旧url(/pagename.php)在被调用时被重写为www.mysite.com/pagename
这个怎么做? 我无法弄清楚(一直得到循环)…
提前致谢!
添加另一个块来定义重写:
Options +FollowSymlinks RewriteEngine On RewriteBase / RewriteRule ^([^\.]+)\.php$ $1 [NC,R=301,L] RewriteRule ^([^\.]+)$ $1.php [NC,PT,L]
请注意, RewriteBase在这里非常重要。 (请参阅http://httpd.apache.org/docs/current/mod/mod_rewrite.html#rewritebase中的文档),否则您的URL将被重写为<hostname>/var/www/pagename.php而不是预期的<hostname>/index.php 。