我为我的网站开发制作了一个简单的框架。
我目前正在使用此网址格式:
www.example.com?r=account/login
但我想将其更改为:
www.example.com/account/login
从网址中删除r=
。
我见过YII框架就是这样做的。但我找不到办法做到这一点。
解决方案:
将以下代码添加到.htaccess
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteRule ^([a-zA-Z0-9-/]+)$ index.php?r=$1
RewriteRule ^([a-zA-Z0-9-/]+)/$ index.php?r=$1
</IfModule>`
答案 0 :(得分:0)
您正在寻找的是SEO友好的URL,这是很常见的使用&amp;实行。这是来自基本WordPress安装的.htaccess
,它实现了类似的目标:
# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>
# END WordPress
然后在index.php
中,您可以通过执行$_GET
的变量转储来测试这一点:
echo '<pre>';
print_r($_GET);
echo '</pre>';
答案 1 :(得分:0)
我看到你找到了一个解决方案但是你不需要/不应该为同一件事添加两个重写规则来添加/
。您可以使用?
使其成为可选项。我还建议在重写时使用[L]
,以便在满足规则时停止。
这更像是你在寻找的东西。
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([^/]+)/?$ /index.php?r=$1 [L]
</IfModule>