这是我现在的。htaccess文件。
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ $1.php [NC,L,QSA]
当不使用。php扩展名时,它使我的页面可访问。
Old = domain.com/test.php
New = domain.com/test
糟糕的事情是,当我用以下链接发送get数据时,数据没有传递。我以为QSA期权就做到了,有什么大不了的?
domain.com/test?id=1
匹配整个查询字符串并使用反向引用将其附加到新URL中应该可以工作。
RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{QUERY_STRING} ^(.*)$
RewriteRule ^(.*)$ $1.php?%1 [NC,L,QSA]
这里有一个更简单的解决方案。我们在团队项目中使用它。它不仅可以在根目录下工作,还可以在网站的任何目录下工作。
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME}'.php -f
RewriteRule ^(.*)$ $1.php
如果您通过了id
,那么您必须使用此代码
Options +FollowSymLinks
RewriteEngine on
RewriteRule ^test/(.*)$ /test.php?id=$1
现在可以访问
domain.com/test?id=1
从domain.com/test/1