我试图结合三个不同的清洁网址规则

时间:2014-11-20 23:52:25

标签: .htaccess url-rewriting

我的问题是我希望得到三条简单的规则,但我的知识太少,无法让它们一起工作:

这些显而易见:

RewriteRule ^login$ /login.php [L]
RewriteRule ^register$ /register.php [L]

domain.com/login domain.com/register

其次,由于我只有一个页面用于显示数据,我希望它的网址像posible一样简单,如:

RewriteRule ^(.*)$ /data.php?id=$1 [L]

应该翻译成: 的 domain.com/1a2s3d

第三,我希望能够使用激活码更改网址:

RewriteRule ^register/activate/([^/]+)$ /register.php?action=activate&code=$1 [L]

最终应该翻译成: 的 domain.com/register/activate/some-hash

我只知道基本知识。我不能将所有这三个想法混合到一个单独的工作htaccess文件中。使用第二个规则服务器给出了500个错误,第三个规则注册页面工作,但css文件路径被转换为domain.com/register/activate/theme/style.css而不是domain.com/theme/style.css < / p>

任何帮助都将不胜感激。

1 个答案:

答案 0 :(得分:1)

试试吧:

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

RewriteRule ^login$ /login.php [L]
RewriteRule ^register$ /register.php [L]
RewriteRule ^register/activate/([^/]+)$ /register.php?action=activate&code=$1 [L]
RewriteRule ^(.*)$ /data.php?id=$1 [L]