我的问题是我希望得到三条简单的规则,但我的知识太少,无法让它们一起工作:
这些显而易见:
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>
任何帮助都将不胜感激。
答案 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]