用斜杠.htaccess替换GET变量

时间:2014-01-28 04:32:57

标签: php regex apache .htaccess mod-rewrite

我正在尝试使用.htaccess让我的网址“更漂亮”。

更改 domain.com/page/val1

domain.com/page.php?var1=val1

如果可能的话,我希望它也可以使用2个变量:

更改 domain.com/page/val1/val2

domain.com/page.php?var1=val1&var2=val2

这是我当前的.htaccess文件,用于删除.php扩展名:

RewriteEngine on
RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_FILENAME}\.php -f 
RewriteRule ^(.*)$ $1.php

我发现其他主题的解决方案类似于添加类似的内容:

RewriteRule ^([^/]+)/([^/]+)/([^/]+)/([^/]+)/?$ /$1/$2?var1=$3&var2=$4 [L,QSA,NC]

我已经尝试了很多方法来修改它,它似乎永远不会起作用。

任何帮助将不胜感激。感谢。

1 个答案:

答案 0 :(得分:3)

试试这段代码:

RewriteEngine on

RewriteCond %{REQUEST_FILENAME} !-d 
RewriteCond %{REQUEST_FILENAME}\.php -f 
RewriteRule ^([^/]+)/?$ $1.php [L]

RewriteCond %{REQUEST_FILENAME} -d [OR]
RewriteCond %{REQUEST_FILENAME} -f
RewriteRule ^ - [L]

RewriteRule ^([^/]+)/([^/]+)/?$ $1.php?var1=$2 [L,QSA]

RewriteRule ^([^/]+)/([^/]+)/([^/]+)/?$ $1.php?var1=$2&var2=$3 [L,QSA]