如何使用.htaccess为2个参数或1创建干净的URL

时间:2016-11-01 15:48:50

标签: php apache .htaccess mod-rewrite

我有一个网址为网址website.com/app/,目录中有一个index.php,还有一个.htaccess文件。 我想把这个网址变成一个干净的网址

website.com/app/?app=app1&id=12345

website.com/app/app1/12345

我能够通过这条规则实现这一目标

RewriteEngine On
# Don't match real existing files so CSS, scripts, images aren't rewritten
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d

RewriteRule ^([^/]+)/([^/]+) index.php?app=$1&id=$2 [L] 
RewriteRule ^([^/]+)index.php?app=$1 [L] 

但我也希望能够使用此网址访问该网页

website.com/app/app1

这样它意味着website.com/app/?app=app1但是目前我得到了#34;没有找到对象!"在尝试这个时。 谢谢!

2 个答案:

答案 0 :(得分:1)

试试这个RewriteRule,它将为您留下以下网址:website.com/app/app1

RewriteEngine On
RewriteRule ^app/([^/]*)$ /app/?app=$1 [L]

答案 1 :(得分:0)

我在这里回答我自己的问题:

RewriteEngine On
# Don't match real existing files so CSS, scripts, images aren't rewritten
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d

RewriteRule ^([^/]*)$ /apps/?app=$1 [L]
RewriteRule ^([^/]*)/([^/]*)$ index.php?app=$1&id=$2 [L]

欢迎您