.htaccess从URL中删除.php扩展名

时间:2013-09-15 12:18:37

标签: php .htaccess mod-rewrite

以下是我想要实现的结果:

  

http://www.sample.com/index.php?sec=fb&h=var2

  

http://www.sample.com/fb?w=var1&var=2

以下是我尝试使用的.htaccess文件中的代码:

RewriteRule ^fb$ fb.php [L]

如果有人花时间帮我解决这个问题,我真的很感激。非常感谢!

2 个答案:

答案 0 :(得分:1)

没有PHP重写这样的东西。如果你想删除.php文件扩展名,可以这样做。

这是.htaccess重写,您可以尝试在.htaccess上使用它:

RewriteCond %{REQUEST_FILENAME}.php -f
RewriteRule !.*\.php$ %{REQUEST_FILENAME}.php [L, QSA]

另外,请确保你有mod_rewrite。

执行此操作的第一步是打开与服务器的SSH连接,使用root登录并键入

a2enmod rewrite

它将为您启用它,或者告诉它是否已经启用。

并确保位于 / etc / apache2 / sites-enabled 的文件 000-default

<Directory /var/www/>
    Options Indexes FollowSymLinks MultiViews
    AllowOverride All
    Order allow,deny
    allow from all
</Directory>

而不是

<Directory /var/www/>
    Options Indexes FollowSymLinks MultiViews
    AllowOverride None
    Order allow,deny
    allow from all
</Directory>

答案 1 :(得分:0)

如果你想只为一个网址实现它 http://www.sample.com/fb.php?w=var1&=h=var2

然后使用下面的重写规则

RewriteRule ^fb /fb.php [L,QSA]

否则,如果你想要每个.php网址, 使用上面的回答

你的重写规则没问题,只需在最后添加QSA,附加网址的查询字符串