我试着将三个不同的清洁URL规则
问题描述:
我的问题是,我想获得三个简单的规则工作,但我的知识太少,让他们一起工作:
我试着将三个不同的清洁URL规则
这是显而易见的:
RewriteRule ^login$ /login.php [L]
RewriteRule ^register$ /register.php [L]
domain.com/login和domain.com/register
其次,因为我已经用于显示数据只有一个页面,我想它的网址是为更多钞票一样简单,如:
RewriteRule ^(.*)$ /data.php?id=$1 [L]
应译为: domain.com/1a2s3d
作为第三,我希望能够改变URL与激活码:
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
任何帮助,将不胜感激。
答
与刚刚尝试:
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]
短anwers是最好的,谢谢! 但是,这条规则是什么意思 - RewriteRule^- [L]? – user3038744 2014-11-21 00:27:37
使用'-f'和'-d',您只需检查是否没有具有相同名称的实际文件或目录。如果是这样,你不会改变任何东西 – Croises 2014-11-21 01:38:44