带有两个URL参数的URL的mod_rewrite

时间:2014-06-26 10:25:06

标签: php .htaccess mod-rewrite

我希望能够打开以下网址

http://example.com/login/12345

并在后台加载:

http://example.com/index.php?endpoint=login&access_key=12345

显然,我已经尝试了很多htaccess生成器来创建一个合适的RewriteRule集。

例如以下(来自:http://www.generateit.net/mod-rewrite/index.php):

RewriteEngine On
RewriteRule ^([^/]*)/([^/]*)$ /index.php?endpoint=$1&access_key=$2 [L]

即使我知道在我的服务器上启用了.htaccess和mod_rewrite这一事实(我试图设置测试以使用htaccess和mod_rewrite将所有请求从example.com重定向到example2.com,并且它有效),我不能让这个工作。

我现在花了近2个小时在stackoverflow和其他网站上找到解决方案,但我的所有尝试都失败了。

我希望有人可以帮助我找出在上面的例子中重写我的网址的正确方法。如上所述。

提前多多感谢!

2 个答案:

答案 0 :(得分:2)

试试这个:

RewriteEngine On
RewriteRule ^([^\/]*)/([^\/]*)$ /index.php?endpoint=$1&access_key=$2 [L]
#-Added-these---^--------^

测试时,结果如下:

enter image description here

答案 1 :(得分:1)

将其添加到.htaccess

中的DOCUMENT_ROOT文件中

假设login不可变

RewriteEngine On
RewriteRule ^login/(\d+)$ index.php?endpoint=login&access_key=$1 [L,NC,DPI]

**如果login是变量**

如果您不仅要为login重定向,还要为http://example.com/housenumber/12345

等网址重定向
RewriteEngine On
RewriteRule ^([^/]+)/(\d+)$ index.php?endpoint=$1&access_key=$2 [L,NC,DPI]

在实际的Apache 2.2和2.4上测试过:)