2013-02-04 89 views
0

我打算从我的网页中删除.php扩展名。我已经有了我想要使用的.htaccess文件的代码;重写.htaccess删除.php GET方法

RewriteEngine On 
RewriteCond %{REQUEST_FILENAME} !-f 
RewriteRule ^([^\.]+)$ $1.php [NC,L] 

在我开始编辑文件之前,我有一个问题;

当我这样做时,使用GET方法的页面会发生什么?例如index.php?mode =注销

这是否仍然有效?如果没有,是否有解决方法?

+0

除非传入URL中的参数有查询,否则它不会。例;通过'http://example.com/模式= logout'。在这些情况下,传入的查询将自动附加到资源。例如:'RewriteRule ^([^ \。] +)$ $ 1.php?mode = logout [NC,L]'除非在重写规则中添加新的查询,否则不需要QSA标志。但是,您应该提供一些URL示例以了解您需要的内容。不过,在所有情况下,传入URL都必须包含要传递给资源的参数,包括此例中的名称。 –

回答

0

您可以包含QSA以保持查询字符串不变。

RewriteRule ^([^\.]+)$ $1.php [NC,L,QSA] 
+0

但是我必须编辑我的页面吗?因为有些页面通过GET方法需要2个变量。例如重置页面; reset.php?activation = $ variable1&email = $ variable2 此链接的外观如何?我是否必须编辑页面才能使用新链接? – Student

+0

你不需要编辑你的页面。如果已经通过GET方式获取变量,那么使用QSA添加重写应该可以继续工作。它会将'page /?var1 = test&var2 = test'重写为'page.php?var1 = test&var2 = test'。 – showdev