我对mod_rewrite有疑问 - 我有以下网址:
http://website.com/profile/index.php?a=profile&u=username
我正在尝试将其重写为:
http://website.com/profile/user/username
我的.htaccess
文件中有以下内容:
RewriteEngine on
RewriteRule ^/profile/user/([^/]*)$ /profile/index.php&a=profile&u=$1 [L]
虽然转到重写的网址时,我看不到该页面。我只看到默认的index.php页面。我尝试通过打印来获取参数:print_r($_GET);
这给了我以下内容:
Array ( [a] => u [q] => /username)
现在我的问题是 - 如何将第一个URL重写为第二个?显然,a
为空,u
也包含/
答案 0 :(得分:1)
RewriteEngine on
RewriteRule ^profile/user/([^/]*)$ index.php?a=profile&u=$1 [L]
对于网址:localhost/profile/user/test
- print_r($_GET)
返回:
Array ( [a] => profile [u] => test )
答案 1 :(得分:-2)
Mode_rewrite
试试这个
RewriteCond %{QUERY_STRING} ^$ [OR]
RewriteCond %{QUERY_STRING} ^query=(.*)$ [NC]
RewriteRule ^/old-search$ /search/%1 [NC,L,R=301]
OR
RewriteCond %{QUERY_STRING} ^view=tags$ [NC]
RewriteRule ^/blog$ /profile/users/ [NC,L,R=301]
RewriteCond %{QUERY_STRING} ^view=posts$ [NC]
RewriteRule ^/blog$ /profile/ [NC,L,R=301]
RewriteRule ^/profile$ /profile/%1 [NC,L,R=301]